@charset "utf-8";

:root {
	/* base */
	--cts-gutter: clamp(40px, -2.212rem + 8.91vw, 65px);/*375-768*/
	--cts-width: 1330px;

	/* font */
	--dp-font-jp: "Noto Sans JP", sans-serif;      

	/* color */
	--color-white-1: #FFFFFF;
	--color-gray-1: #D4D4D4;
	--color-gray-2: #4E4E4E;
	--color-beige-1: #FCF4EA;
	--color-red-1: #FF0101;
	--color-green-1: #9DD703;
	--color-purple-1: #4D3198;
	--color-purple-2: #AF74A0;
	--color-black-1: #000000;
	--color-black-2: #2D2D2D;
}

/* LP共通汎用
____________________*/
body {
	padding-right: 0 !important;
	overflow: visible !important;
}
#container a, #container a span {
    color: inherit;
    text-decoration: none;
}
.pagetop {
	display: none;	
}
#pagetop {
	display: none;
	position: fixed;
	bottom: 30px;
	right: 55px;
}
#pagetop a {
	color: #fff;
	background-color: #333;
	border-radius: 5px;
	display: block;
	font-size: 12px;
	line-height: 1.5em;
	padding: 5px 10px;
	text-align: center;
	text-decoration: none;
}
figure {
	margin: 0;
	text-align: center;
}
img {
	image-rendering: -webkit-optimize-contrast;
}
.l-header {
    width: 100%;
    background: #fff;
    position: relative;
}
.c-breadcrumb--gray {
	display: flex;
	align-items: center;
}
.bnr_link_win11_wrap {
    margin: 0 auto;
}
.bnr_link_win11 img {
    transition: opacity 0.3s;
    width: 300px;
}
.bnr_link_win11 img:hover {
	opacity: 0.75;
}
.BreadcrumbList_wrap {
	background: #fff;
	position: relative;
    z-index: 2;
}
.footer-wrap {
    background: #fff;
    position: relative;
    z-index: 2;
}
@media screen and (max-width: 1280px) {
    .l-header {
        z-index: 10;
    }
}
@media screen and (min-width: 768px), print and (min-width: 768px) {
	.c-breadcrumb__list.u-pc-width,
	.bnr_link_win11_wrap.u-pc-width {
		padding-inline: 30px;
	}
	.bnr_link_win11_wrap.u-pc-width {
		width: auto;
	}
}
@media screen and (max-width: 1000px) {
	.c-breadcrumb--gray {
		display: inherit;
	}
	.bnr_link_win11_wrap {
		width: 100%;
		margin: 10px auto 0 !important;
		padding-block-end: 10px;
	}
	.bnr_link_win11 {
		width: 100%;
		margin-top: 0;
		text-align: center;
	}
}
.contents__wrap {
	width: 100%;
	/* background: var(--cts-color1); */
	margin-inline: auto;
	font-size: var(--cts-font-size);
	font-family: var(--dp-font-jp);
	letter-spacing: 0.05em;
	color: var(--color-black-1);
}
.contents__wrap img {
	max-width: 100%;
	vertical-align: bottom;
}
.pc {
	display: block !important;
}
.sp {
	display: none !important;
}
.flash:hover {
	animation-name: hover-flash;
	animation-duration: 1s;
	opacity: .85;
}
@keyframes hover-flash {
	0% {
		opacity: .3;
	}
	100% {
		opacity: .85;
	}
}

/* コンテンツ
____________________*/
::selection {
	color: var(--color-white-1);
	background-color: var(--color-red-1);
}
.contents__wrap {
	/* margin-bottom: 100px; */
	background: var(--color-blue-1);
	position: relative;
	z-index: 1;
}

.contents__inner {
	width: 100%;
	max-width: var(--cts-width);
	margin-inline: auto;
	padding-inline: var(--cts-gutter);
	box-sizing: border-box;
	position: relative;
}

@media (max-width: 768px) {/*375-768*/
	.pc {
		display: none !important;
	}
	.sp {
		display: block !important;
	}
	.contents__wrap {
		padding-bottom: 0;
	}
}
/* mv
____________________*/
.contents--mv {
	width: 100%;
	position: relative;
	z-index: 1;
}
.mv-wrap .ttl-h1 img {
	width: 100%;
	height: auto;
	vertical-align: bottom;
}
/* lp-nav
____________________*/
.lp-nav-wrap {
  position: fixed;
  top: 0;
  right: 0;
  z-index: 1000;
  pointer-events: none; /* 非表示時は下の操作を阻害しない */
}
.lp-nav-wrap.is-show {
  pointer-events: auto;
}
/* 追従ナビゲーション */
.lp-nav-wrap .lp-nav {
  display: flex;
  justify-content: flex-end;
  background: var(--color-red-1);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}
.lp-nav-wrap.is-show .lp-nav,
.lp-nav.is-active {
  opacity: 1;
  visibility: visible;
}
/* 画面全体の薄い暗い背景（HTML変更不要：.lp-nav の疑似要素として作成） */
.lp-nav::before {
	content: "";
	position: fixed;
	top: 0;
	left: 0;
	width: 100vw;
	height: 100vh;
	background-color: rgba(0, 0, 0, 0.6); /* 背景の暗さ */
	z-index: 1001;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.3s ease, visibility 0.3s ease;
	pointer-events: none; /* 閉じている時は下の操作を阻害しない */
}

/* メニュー開く時に背景を表示 */
.lp-nav.is-active::before {
	opacity: 1;
	visibility: visible;
	pointer-events: auto; /* 開いている時は背景クリック可能に */
}

/* ハンバーガーボタン */
.lp-nav__button {
	position: relative;
	z-index: 1003; /* 背景・メニューより全面に */
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	gap: clamp(0.75rem, 1.165vw + 0.477rem, 1.875rem);
	width: clamp(3.75rem, 5.113vw + 2.55rem, 8.6875rem);
	height: clamp(3.75rem, 5.113vw + 2.55rem, 8.6875rem);
	background: transparent;
	border: none;
	cursor: pointer;
	padding: 0;
}

.lp-nav__bar {
	display: block;
	width: 50%;
	height: 2px;
	background-color: var(--color-white-1);
	border-radius: 2px;
	transition: transform 0.3s ease;
}

.lp-nav__button.is-active {
	background: var(--color-black-1);
}

/* クリック時：× に変形 */
.lp-nav__button.is-active .lp-nav__bar:nth-child(1) {
	transform: translateY(calc(clamp(0.75rem, 1.165vw + 0.477rem, 1.875rem) / 2 + 1px)) rotate(45deg);
}

.lp-nav__button.is-active .lp-nav__bar:nth-child(2) {
	transform: translateY(calc((clamp(0.75rem, 1.165vw + 0.477rem, 1.875rem) / 2 + 1px) * -1)) rotate(-45deg);
}

/* スライドインメニュー */
.lp-nav__menu {
	position: fixed; /* ビューポート固定に修正 */
	top: 0;
	right: 0;
	z-index: 1002;
	min-width: 30.5vw;
	height: 100vh;
	padding: 100px 20px 20px;
	background: rgba(0, 0, 0, 0.85);
	transform: translateX(100%); /* 初期状態は画面右外に隠す */
	transition: transform 0.3s ease-in-out;
	display: flex; /* display: none を削除してアニメーションを有効化 */
	align-items: center;
	justify-content: center;
}

.lp-nav__menu.is-active {
	transform: translateX(0); /* 滑らかにスライドイン */
}

.lp-nav__list {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: clamp(2.1875rem, 1.294vw + 1.884rem, 3.4375rem);
	list-style: none;
	padding: 0;
	margin: 0;
}

.lp-nav__list li {
	margin-bottom: 0;
}

.lp-nav__list a {
	color: var(--color-white-1);
	text-decoration: none;
	font-size: clamp(1rem, 2.848vw + 0.333rem, 3.75rem);
	font-weight: 700;
	line-height: 1;
	display: block;
	/* 色の変化を滑らかにする設定（0.3秒かけて変化） */
	transition: color 0.3s ease;
}

/* ホバー時の指定 */
.lp-nav__list a:hover {
	color: var(--color-red-1);
}
/* special-design
____________________*/
.contents--special-design {
    padding-top: clamp(3.4375rem, 6.796vw + 1.844rem, 10rem);
    padding-bottom: clamp(3.4375rem, 6.796vw + 1.844rem, 10rem);
    background: url(../../gamepc/img/apexlegends/bg-pc.webp) left top / 100%, var(--color-black-2);
	position: relative;
}
.special-design {
	color: var(--color-white-1);
}
.special-design {
	display: flex;
	flex-direction: column;
	align-items: center;
	position: relative;
}
.ttl-special-design {
	font-size: clamp(1rem, 0.906vw + 0.787rem, 1.875rem);
	font-weight: 500;
	line-height: 1.4;
	text-align: center;
}
.txt-special-design {
	font-size: clamp(0.75rem, 0.518vw + 0.628rem, 1.25rem);
	font-weight: 500;
	line-height: 2.2;
	text-align: center;
	margin-top: clamp(1.5625rem, 1.294vw + 1.26rem, 2.8125rem);
}
.special-design .ttl-h2 {
	width: 100%;
	max-width: 382px;
	margin-top: clamp(3.75rem, 6.472vw + 2.233rem, 10rem);
}
.slider-flex-wrap {
    width: 100%;
    max-width: 1120px;
    display: flex;
    justify-content: center;
    gap: clamp(2.1875rem, 8.414vw + 0.215rem, 10.3125rem);
    margin-top: clamp(1.5625rem, 4.207vw + 0.576rem, 5.625rem);
}
.slider-flex-wrap-inner {
    display: flex;
    flex-direction: column;
    align-items: center;
}
.slider-flex-wrap-inner .chara-name {
    margin-top: clamp(0.625rem, 0.971vw + 0.398rem, 1.5625rem);
}
.slider-flex-wrap-inner:nth-of-type(1) .chara-name {
    width: 58%;
    max-width: 273px;
}
.slider-flex-wrap-inner:nth-of-type(2) .chara-name {
    width: 59%;
    max-width: 282px;
}

/* スライダー共通スタイル */
.slider-wrap {
    position: relative;
    width: 100%;
    max-width: 300px;
    overflow: hidden;
}
.main-slider .slide {
    cursor: pointer;
}

/* ★修正箇所：.modal-slider だけでなくすべての .slide-track に適用 */
.slide-track {
    display: flex;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    scrollbar-width: none;
}
.slide-track::-webkit-scrollbar {
    display: none;
}
.slide {
    flex: 0 0 100%;
    scroll-snap-align: start;
}
.slide img {
    width: 100%;
    height: auto;
    display: block;
}

/* ページネーション (ドット) */
.pagination {
    display: flex;
    justify-content: center;
    gap: clamp(0.375rem, 0.583vw + 0.238rem, 0.9375rem);
    margin-top: 10px;
}
.modal-slider .pagination {
	gap: clamp(1.875rem, 2.913vw + 1.192rem, 4.6875rem);
}
.pagination-dot {
    width: clamp(0.375rem, 0.518vw + 0.254rem, 0.875rem);
    height: clamp(0.375rem, 0.518vw + 0.254rem, 0.875rem);
    border-radius: 50%;
	border: 1px solid var(--color-black-1);
    background-color: var(--color-white-1);
    cursor: pointer;
    transition: background-color 0.3s;
}
.modal-slider .pagination-dot {
	width: clamp(1rem, 0.647vw + 0.848rem, 1.625rem);
	height: clamp(1rem, 0.647vw + 0.848rem, 1.625rem);
	border: none;
}
.pagination-dot.is-active {
    background-color: var(--color-black-1);
}

/* モーダル基本設定 */
.modal {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s, visibility 0.3s;
    z-index: 1000;
}
.modal.is-open {
    opacity: 1;
    visibility: visible;
}
.modal-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

/* 背景色の指定クラス */
.modal.bg-green .modal-overlay {
    background-color: rgba(157, 215, 3, 0.8);
}
.modal.bg-purple .modal-overlay {
    background-color: rgba(77, 49, 152, 0.8);
}

/* モーダルコンテンツ */
.modal-contents {
    position: relative;
    z-index: 1001;
    padding: 40px 30px 20px;
    width: 90%;
    max-width: 712px;
    box-sizing: border-box;
    overflow: visible !important;
}

/* モーダル内のスライダー */
.modal-slider {
    position: relative;
    width: 100%;
    max-width: 100%;
    overflow: visible !important;
}
.modal-slider .slide img {
    width: 100%;
    height: auto;
    max-height: 80vh;
    object-fit: contain;
}

/* 画面全体の右上に固定配置する✕閉じるボタン */
.modal-close {
    position: fixed;
    top: clamp(16px, 3vw, 40px);
    right: clamp(16px, 3vw, 40px);
    width: clamp(30px, 5vw, 60px);
    height: clamp(30px, 5vw, 60px);
    background: transparent;
    border: none;
    cursor: pointer;
    z-index: 1002;
}
.modal-close::before,
.modal-close::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 100%;
    height: clamp(2px, 0.3vw, 4px);
    background-color: var(--color-white-1, #fff);
}
.modal-close::before {
    transform: translate(-50%, -50%) rotate(45deg);
}
.modal-close::after {
    transform: translate(-50%, -50%) rotate(-45deg);
}

/* くの字 Prev / Next ボタン */
.prev-btn, .next-btn {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: clamp(44px, 8vw, 120px);
    height: clamp(44px, 8vw, 120px);
    background: transparent;
    border: none;
    cursor: pointer;
    z-index: 1005;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
}
.prev-btn { 
    left: calc(-1 * clamp(20px, 5vw, 80px)); 
}
.next-btn { 
    right: calc(-1 * clamp(20px, 5vw, 80px)); 
}
.prev-btn::before, .next-btn::before {
    content: '';
    display: block;
    width: clamp(24px, 5vw, 60px);
    height: clamp(24px, 5vw, 60px);
    border-top: clamp(3px, 0.6vw, 8px) solid var(--color-white-1, #fff);
    border-right: clamp(3px, 0.6vw, 8px) solid var(--color-white-1, #fff);
    box-sizing: border-box;
}

.prev-btn::before {
    transform: rotate(-135deg);
    margin-left: 0%;
}

.next-btn::before {
    transform: rotate(45deg);
    margin-right: 0%;
}
.txt-note {
	font-size: clamp(0.6875rem, 0.324vw + 0.612rem, 1rem);
    font-weight: 500;
    line-height: 1.4;
    margin-top: clamp(1.875rem, 1.294vw + 1.572rem, 3.125rem);
}
@media (max-width: 768px) {/*375-768*/
	.contents--special-design {
		background: url(../../gamepc/img/apexlegends/bg-sp.webp) left top / 100%, var(--color-black-2);
	}
	.special-design .ttl-h2 {
		width: 37.067vw;
		max-width: inherit;
	}
	.slider-flex-wrap-inner:nth-of-type(1) .chara-name {
		width: 21.867vw;
		max-width: inherit;
	}
	.slider-flex-wrap-inner:nth-of-type(2) .chara-name {
		width: 22.592vw;
		max-width: inherit;
	}
}
/* line-up
____________________*/
.contents--line-up {
	width: 100%;
	background: url(../../gamepc/img/apexlegends/bg-line-up-pc.webp) no-repeat center bottom / 100% ,var(--color-black-1);
	padding-top: clamp(5.9375rem, 4.207vw + 4.951rem, 10rem);
	padding-bottom: clamp(2.1875rem, 4.207vw + 1.202rem, 6.25rem);
	position: relative;
	z-index: 2;
	overflow: hidden;
}
.line-up {
	display: flex;
	flex-direction: column;
	align-items: center;
	position: relative;
	z-index: 1;
}
.line-up .ttl-h2 {
	width: 15%;
	max-width: 175px;
}
.line-up-flex {
	display: flex;
	justify-content: center;
	flex-direction: row-reverse;
	flex-wrap: wrap;
	gap: 100px;
}
.line-up-flex-2 {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 36px;
	margin-top: 120px;
}
.line-up-flex-2 .inner-right {
	width: 100%;
	max-width: 551px;
}
.pc-block {
	display: flex;
	gap: 50px;
}
.pc-block .desk-img {
	width: 285px;
}
.line-up-inner-flex {
	display: flex;
	gap: 35px;
	margin-top: 24px;
}
.inner-flex-left {
	width: 100%;
	max-width: 325px;
}
.note-img {
	width: 100%;
	max-width: 352px;
}
/* tab */
.tab-container {
	width: 100%;
	max-width: 918px;
	margin-top: clamp(1.5625rem, 4.207vw + 0.576rem, 5.625rem);
}
.tab-menu {
	display: flex;
	gap: clamp(0.5rem, 0.453vw + 0.394rem, 0.9375rem);
}
.tab-item {
	cursor: pointer;
	padding: 22px 10px;
	font-weight: bold;
	color:var(--color-white-1);
	background: var(--color-gray-2);
	border-radius: 10px 10px 0 0;
	flex-grow: 1;
	transition: flex-grow 0.4s cubic-bezier(0.25, 1, 0.5, 1), 
				background 0.3s ease, 
				color 0.3s ease;
	white-space: nowrap;
	overflow: hidden;
}
/* アクティブなタブ：flex-growを大きくして幅を広げる */
.tab-item.active {
	padding: 22px 30px;
	flex-grow: 5.7; 
}
.tab-item:nth-of-type(1) {
	color: var(--color-purple-2);
}
.tab-item:nth-of-type(1).active {
	color: var(--color-white-1);
	background: var(--color-purple-1);
}
.tab-item:nth-of-type(2) {
	color: var(--color-green-1);
}
.tab-item:nth-of-type(2).active {
	color: var(--color-white-1);
	background: var(--color-green-1);
}
.tab-inner {
	display: flex;
	justify-content: space-between;
	align-items: center;
}
.ttl-cpu {
	font-size: 25px;
	font-family: var(--cts-font);
	font-weight: 500;
	line-height: 1;
	display: flex;
	align-items: center;
	gap: 15px;
	position: relative;
	z-index: 1;
}
.tab-item .ttl-cpu::before {
	content: "";
	width: 13px;
	height: 13px;
	border-top: 3px solid;
	border-right: 3px solid;
	transform: rotate(45deg);
}
.tab-item:nth-of-type(1) .ttl-cpu::before {
	border-color: var(--color-purple-2);
}
.tab-item:nth-of-type(2) .ttl-cpu::before {
	border-color: var(--color-green-1);
}
.txt-cpu {
	font-size: clamp(0.6875rem, 0.324vw + 0.612rem, 1rem);
	font-weight: 500;
	line-height: 1;
	width: 8em;               /* 6文字分程度の幅に制限 */
	white-space: nowrap;       /* テキストを折り返さない */
	overflow: hidden;          /* はみ出した部分を非表示 */
	text-overflow: ellipsis;  /* はみ出し部分を「…」にする */
}
.tab-item.active .txt-cpu {
	width: inherit;
	overflow: visible;
	text-overflow: inherit;
}
.tab-item.active .ttl-cpu::before,
.tab-item.active .ttl-cpu::before {
	border-color: var(--color-white-1);
}
/* --- コンテンツ部分のスタイル --- */
.tab-content-wrapper {
	position: relative;
	margin-top: clamp(0.3125rem, 0.647vw + 0.161rem, 0.9375rem);
}
.tab-content {
	position: absolute;
	top: 35px;
	opacity: 0;
    visibility: hidden;
    transition: opacity 0.5s ease;
}
/* アクティブなコンテンツ：フェードイン */
.tab-content.active {
	position: relative; /* 浮かせず、親の高さに影響を与える */
    top: 0;
    left: 0;
    right: 0;
    opacity: 1;
    visibility: visible;
}
.line-up-warp {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	flex-direction: column;
	gap: clamp(0.625rem, 0.647vw + 0.473rem, 1.25rem);
}
.line-up-item {
	width: 100%;
	background: var(--color-beige-1);
	display: block;
	text-align: center;
	padding: 0.9375rem clamp(0.625rem, 1.294vw + 0.322rem, 1.875rem);
	border: 2px solid var(--color-purple-1);
	box-sizing: border-box;
	position: relative;
	z-index: 1;
}
.top-block {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 20px;
	padding-bottom: 5px;
	border-bottom: 1px solid var(--color-black-1);
}
.catch {
	color: var(--color-pink-2);
	font-size: clamp(0.8125rem, 0.453vw + 0.706rem, 1.25rem);
	font-weight: 700;
	line-height: 1.5;
	position: relative;
	z-index: 1;
}
.model-price {
	font-size: clamp(1.0625rem, 0.194vw + 1.017rem, 1.25rem);
	font-weight: 700;
	line-height: 1;
}
.model-price .tax {
	font-size: clamp(0.6875rem, 0.324vw + 0.612rem, 1rem);
}
.detail-flex {
	display: flex;
	justify-content: space-between;
	gap: 10px;
	margin-top: clamp(0.625rem, 0.324vw + 0.549rem, 0.9375rem);
}
.inner-left {
	min-width: 0; /* Flexboxの子要素が縮小できるようにするために必須 */
    flex: 1;      /* 余った幅をいっぱいに広げる */
}
.model-name {
	width: 100%;
    /* 以下の省略設定はそのまま維持 */
    font-size: clamp(0.8125rem, 0.453vw + 0.706rem, 1.25rem);
    font-weight: 500;
    line-height: 1.7;
    text-align: left;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.spec-list {
	font-size: clamp(0.6875rem, 0.324vw + 0.612rem, 1rem);
	font-weight: 500;
	line-height: 1.5;
	text-align: left;
	margin-top: 15px;
	display: inline-block;
}
.spec-list li {
	display: inline;
	text-align: left;
	position: relative;
}
.spec-list li::after {
	content: "/";
	padding-inline: 0.5em;
}
.inner-right {
    width: 100%;
    max-width: 232px;
    flex: none;
    display: flex;
    flex-direction: column;
    gap: clamp(0.25rem, 0.129vw + 0.22rem, 0.375rem);
}

.model-link {
    width: 100%;
    max-width: 232px;
    display: flex; /* flexに変更して要素の配置を調整 */
    align-items: center;
    justify-content: center;
    background: var(--color-black-1);
    font-size: clamp(0.6875rem, 0.194vw + 0.642rem, 0.875rem);
    font-weight: 500;
    line-height: 1;
    text-align: center;
    padding: clamp(1rem, 0.194vw + 0.954rem, 1.1875rem);
    border: 1px solid;
    position: relative;
    text-decoration: none;
    box-sizing: border-box;
    overflow: hidden; /* 背景アニメーションのはみ出しを隠す */
    transition: color 0.3s ease; /* 文字色の変化を滑らかに */
    z-index: 1;
}

/* ホバー時の背景色アニメーション（::before） */
.model-link::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: -1;
    transform: scaleX(0);
    transform-origin: left; /* 左端から右へ伸ばす */
    transition: transform 0.3s ease;
}

.model-link:hover::before {
    transform: scaleX(1);
}

/* テキスト要素 */
.model-link span:not(.arrow) {
    position: relative;
    z-index: 2;
}

/* 右側の「くの字」矢印 */
.model-link .arrow {
    position: absolute;
    right: 16px;
    top: 50%;
    width: 6px;
    height: 6px;
    border-top: 2px solid currentColor;  /* 親のcolorを継承 */
    border-right: 2px solid currentColor; /* 親のcolorを継承 */
    transform: translateY(-50%) rotate(45deg);
    transition: border-color 0.3s ease;
    z-index: 2;
}

/* --- Green バリエーション --- */
.model-link.green {
    color: var(--color-green-1);
    border-color: var(--color-green-1);
}

.model-link.green::before {
    background-color: var(--color-green-1);
}

/* --- Purple バリエーション --- */
.model-link.purple {
    color: var(--color-purple-2);
    border-color: var(--color-purple-2);
}

.model-link.purple::before {
    background-color: var(--color-purple-2);
}

/* --- ホバー時の文字色調整 --- */
/* 背景色と塗りが被るため、ホバー時は文字と矢印を黒（または白）に反転 */
.model-link.green:hover,
.model-link.purple:hover {
    color: var(--color-black-1); /* 必要に応じて #fff 等に変更してください */
}

@media (max-width: 768px) {/*375-768*/
	.contents--line-up {
		background: url(../../gamepc/img/apexlegends/bg-line-up-sp.webp) no-repeat center top / 100%, var(--color-black-1);
	}
	.line-up .ttl-h2 {
		width: 17.019vw;
		max-width: inherit;
	}
	.tab-item {
		padding: 15px 15px 10px;
	}
	.tab-item.active {
		padding: 15px 15px 10px;
	}
	.tab-inner {
		flex-direction: column;
		align-items: flex-start;
		gap: 10px;
	}
	.tab-item.active .txt-cpu {
		display: block;
	}
	.tab-item .ttl-cpu::before {
		width: 9px;
		height: 9px;
		border-top: 2px solid;
		border-right: 2px solid;
	}
	.ttl-cpu {
		font-size: 16px;
		gap: 10px;
	}
	.txt-cpu {
		font-size: 11px;
		display: none;
	}
	.tab-content-wrapper {
		margin-top: 5px;
	}
	.detail-flex {
		flex-direction: column;
	}
	.model-price {
		text-align: right;
		margin-top: 10px;
	}
	.inner-right {
		flex-direction: row;
		max-width: inherit;
	}
	.model-link .arrow {
		right: 10px;
	}
}
/* bonus
____________________*/
.contents--bonus {
	padding-top: clamp(3.4375rem, 6.796vw + 1.844rem, 10rem);
	padding-bottom: clamp(3.4375rem, 6.796vw + 1.844rem, 10rem);
	background: url(../../gamepc/img/apexlegends/bg-bonus-gra-pc.webp)no-repeat left bottom/100%,url(../../gamepc/img/apexlegends/bg-pc.webp) left top/100%,var(--color-beige-1);
}
.bonus {
	display: flex;
	flex-direction: column;
	align-items: center;
}
.bonus .ttl-h2 {
	width: 14%;
	max-width: 160px;
}
.bonus .ttl-jp {
	font-size: clamp(0.75rem, 1.165vw + 0.477rem, 1.875rem);
	font-weight: 700;
	line-height: 1;
	text-align: center;
	margin-top: clamp(0.625rem, 0.647vw + 0.474rem, 1.25rem);
}
.wallpaper-wrap {
	border: 7px solid var(--color-black-1);
	background: var(--color-beige-1);
	padding: 
	clamp(1.875rem, 2.265vw + 1.344rem, 4.0625rem) 
	clamp(0.9375rem, 6.796vw + -0.656rem, 7.5rem);
	margin-top: clamp(1.875rem, 0.971vw + 1.647rem, 2.8125rem);
}
.ttl-flex {
	display: flex;
	align-items: center;
	gap: clamp(0.6125rem, 1.618vw + -0.068rem, 1.875rem);
}
.ttl-flex .ttl-h3 {
	font-size: clamp(1.5625rem, 1.618vw + 1.183rem, 3.125rem);
	font-weight: 700;
	line-height: 1;
	display: flex;
	align-items: center;
	gap: 2.1875rem;
	position: relative;
	z-index: 1;
}
.ttl-flex .ttl-h3::before {
	content: "!";
	font-size: 3.75rem;
	font-weight: 700;
	line-height: 1;
	width: 6.375rem;
	height: 6.375rem ;
	border: 1px solid var(--color-black-1);
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center; 
}
.ttl-inner-jp {
	font-size: clamp(0.8125rem, 0.453vw + 0.706rem, 1.25rem);
	font-weight: 700;
	line-height: 1;
}
.txt-inner-jp {
	font-size: clamp(0.75rem, 0.259vw + 0.689rem, 1rem);
	font-weight: 500;
	line-height: 1.7;
	margin-top: 0.3em;
}
.wallpaper-item-wrap {
	display: flex;
	margin-top: clamp(1.25rem, 0.971vw + 1.022rem, 2.1875rem);
	gap: clamp(1.25rem, 1.294vw + 0.947rem, 2.5rem);
}
.wallpaper-note {
	font-size: clamp(0.6875rem, 0.324vw + 0.612rem, 1rem);
	font-weight: 500;
	line-height: 1.9;
	margin-top: 20px;
}
@media (max-width: 768px) {/*375-768*/
	.contents--bonus {
		background: url(../../gamepc/img/apexlegends/bg-bonus-gra-sp.webp)no-repeat left bottom/100%,url(../../gamepc/img/apexlegends/bg-sp.webp) left top/100%,var(--color-beige-1);
	}
	.bonus .ttl-h2 {
		width: 15.541vw;
		max-width: inherit;
	}
	.wallpaper-wrap {
		border-width: 5px;
	}
	.ttl-flex {
		flex-direction: column;
        align-items: center;
        text-align: center;
	}
	.ttl-flex .ttl-h3::before {
		content: none;
	}
	.txt-inner-jp {
		margin-top: 2em;
	}
	.wallpaper-item-wrap {
		flex-direction: column;
	}
}
/* profile
____________________*/
.contents--profile {
	padding-top: clamp(3.91rem, 2.913vw + 1.818rem, 5.3125rem);
	padding-bottom: clamp(2.5rem, 2.913vw + 1.818rem, 5.3125rem);
	background: var(--color-black-1);
}
.profile {
	color: var(--color-white-1);
	display: flex;
	flex-direction: column;
	align-items: center;
}
.logo-profile {
	width: 30%;
	max-width: 345px;
	display: block;
}
.txt-profile {
	font-size: clamp(0.8125rem, 0.453vw + 0.706rem, 1.25rem);
	font-weight: 500;
	line-height: 1.9;
	text-align: center;
	margin-top: clamp(2.5rem, 2.589vw + 1.893rem, 5rem);
}
.chara-wrap {
	width: 100%;
	max-width: 754px;
	display: flex;
	gap: clamp(2.1875rem, 4.207vw + 1.203rem, 6.25rem);
	margin-top: clamp(3.4375rem, 1.618vw + 3.058rem, 5rem);
}
.chara-item {
	display: flex;
	flex-direction: column;
	align-items: center;
}
.chara-item .chara-name,
.chara-proflie {
	font-size: clamp(0.875rem, 0.388vw + 0.784rem, 1.25rem);
	font-weight: 500;
}
.chara-item .chara-name {
	margin-top: clamp(0.625rem, 0.971vw + 0.397rem, 1.5625rem);
}
.chara-proflie {
	margin-top: 0.5em;
}
.link-btn-block {
    width: 100%;
    max-width: 420px;
    margin: clamp(3.125rem, 1.618vw + 2.744rem, 4.6875rem) auto 0;
}

.link-btn {
    font-size: clamp(0.6875rem, 0.324vw + 0.612rem, 1rem);
    font-weight: 700;
    line-height: 1;
    text-align: center;
    width: 100%;
    border: 1px solid var(--color-white-1, #ffffff);
    padding-block: clamp(0.8125rem, 0.518vw + 0.691rem, 1.3125rem);
    
    /* 矢印を右端に配置するため position: relative を指定 */
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    overflow: hidden;
    color: inherit;
    text-decoration: none;
    isolation: isolate;
}

/* ホバー時の背景色描画アニメーション */
.link-btn::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: var(--color-white-1);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.3s ease;
    z-index: -1;
	opacity: 0.5;
}

.link-btn:hover::before {
    transform: scaleX(1);
}

/* 矢印の土台：右端に絶対配置 & サイズ拡大 */
.link-btn .arrow {
    display: block;
    position: absolute;
    right: 1.5rem; /* 右端からの余白（お好みで調整可） */
    top: 50%;
    width: 16px;   /* サイズ拡大（12px → 16px） */
    height: 16px;  /* サイズ拡大（12px → 16px） */
    transform: translateY(-50%); /* 上下中央揃え */
    transition: transform 0.3s ease;
}

/* 矢印の「斜めの中心線」 */
.link-btn .arrow::before {
    content: "";
    position: absolute;
    top: 7px;
    left: 0;
    width: 16px;
    height: 2px;
    background-color: currentColor;
    transform: rotate(-45deg);
}

/* 矢印の先端の「くの字」 */
.link-btn .arrow::after {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    width: 13px;
    height: 13px;
    border-top: 2px solid currentColor;
    border-right: 2px solid currentColor;
}

/* ホバー時に上下中央を保ちつつ右上へスライド */
.link-btn:hover .arrow {
    transform: translate(2px, calc(-50% - 2px));
}
.lp-copy {
	font-size: clamp(0.625rem, 0.259vw + 0.564rem, 0.875rem);
	font-weight: 500;
	line-height: 1.5;
	margin-top: clamp(0.9375rem, 2.265vw + 0.407rem, 3.125rem);
}
@media (max-width: 768px) {/*375-768*/
	.logo-profile {
		width: 39.4vw;
		max-width: inherit;
	}
	.txt-profile {
		text-align: left;
	}
	.chara-proflie {
		margin-top: 0.5em;
		letter-spacing: 0.01em;
	}
	.link-btn .arrow {
		right: 1.25em;
	}
}


/* トップに戻るボタン
____________________*/
/* トップに戻るボタン本体 */
.pagetop-btn {
  position: fixed;
  bottom: clamp(1.25rem, 2vw, 2.5rem);
  right: clamp(1.25rem, 2vw, 2.5rem);
  z-index: 999;
  width: clamp(5.165rem, 5.331vw + 3.916rem, 10.3125rem);
  aspect-ratio: 1 / 1;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease, transform 0.3s ease;
  pointer-events: none;
}

/* スクロール非表示の解除 */
.pagetop-btn.is-show {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

/* 背景画像（PC / 時計回り回転アニメーション） */
.pagetop-btn::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: url('/gamepc/img/apexlegends/bg-top-pc.webp?$staticlink$') no-repeat center / contain;
  animation: rotateBg 12s linear infinite; /* 回転スピードは適宜調整 */
}

/* SP用背景画像の切り替え */
@media screen and (max-width: 768px) {
  .pagetop-btn::before {
    background-image: url('/gamepc/img/apexlegends/bg-top-sp.webp?$staticlink$');
  }
}

/* 中央の矢印画像 */
.pagetop-btn__arrow {
  position: relative;
  z-index: 2;
  width: clamp(1.4069rem, 1.087vw + 1.152rem, 2.4569rem);
  aspect-ratio: 1 / 1;
  height: auto;
  background: url('/gamepc/img/apexlegends/bg-arrow.webp?$staticlink$') no-repeat center / contain;
}

/* ホバーで少し上に動く */
.pagetop-btn:hover {
  transform: translateY(-6px);
}

/* 時計回り回転定義 */
@keyframes rotateBg {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}