@charset "UTF-8";
:root {
		/* Root設定 */
		font-family: "Georama", sans-serif;
		font-size: 100%;
		/* 1rlh = 14px（@media: w360px）〜 16px（@media: w1000px） */
		line-height: clamp(0.875pc, 0.875pc + (1vw - 0.225pc) * 0.3125, 1pc);
		/* 1ls（line-spacing／行間） */
		--1ls: calc(1lh - 1em);
		--0\.5ls: calc((0.5lh - 0.5em) / 1);
		/* Base */
		--lh-base: clamp(1.66em, calc(1.66em + ((1vw - 0.225em) * 0.55)), 1.88em);
		--lts-base: clamp(0.01em, calc(0.01em + ((1vw - 0.225em) * 0.05)), 0.03em);
		--fz-base: clamp(14px, calc(14px + ((1vw - 3.6px) * 0.1563)), 15px);
		--fw-base: 400;
		/* Fluid-fractional rem（可変rem）：例）calc(var(--⅓fem) * 3) */
		--⅞fem: clamp(14px, calc(14px + ((1vw - 3.6px) * 0.3125)), 16px);
		--⅚fem: clamp(13.3px, calc(13.3px + ((1vw - 3.6px) * 0.4172)), 16px);
		--⅘fem: clamp(12.8px, calc(12.8px + ((1vw - 3.6px) * 0.5)), 16px);
		--¾fem: clamp(12px, calc(12px + ((1vw - 3.6px) * 0.625)), 16px);
		--⅔fem: clamp(10.6px, calc(10.6px + ((1vw - 3.6px) * 0.8438)), 16px);
		--⅝fem: clamp(10px, calc(10px + ((1vw - 3.6px) * 0.9375)), 16px);
		--⅗fem: clamp(9.6px, calc(9.6px + ((1vw - 3.6px) * 1)), 16px);
		--½fem: clamp(8px, calc(8px + ((1vw - 3.6px) * 1.25)), 16px);
		--⅖fem: clamp(6.4px, calc(6.4px + ((1vw - 3.6px) * 1.5)), 16px);
		--⅜fem: clamp(6px, calc(6px + ((1vw - 3.6px) * 1.5625)), 16px);
		--⅓fem: clamp(5.3px, calc(5.3px + ((1vw - 3.6px) * 1.6719)), 16px);
		--¼fem: clamp(4px, calc(4px + ((1vw - 3.6px) * 1.875)), 16px);
		--⅕fem: clamp(3.2px, calc(3.2px + ((1vw - 3.6px) * 2)), 16px);
		--⅙fem: clamp(2.6px, calc(2.6px + ((1vw - 3.6px) * 2.0938)), 16px);
		--⅛fem: clamp(2px, calc(2px + ((1vw - 3.6px) * 2.1875)), 16px);
		--⅒fem: clamp(2px, calc(2px + ((1vw - 3.6px) * 2.1875)), 16px);
		/* Fluid-Magnificational rem（スマホの方が大きい）：例）calc(var(x1\.33fem) * 1) */
		--x1\.2fem: clamp(16px, calc(19.2px + ((1vw - 3.6px) * -0.5)), 19.2px);
		--x1\.25fem: clamp(16px, calc(20px + ((1vw - 3.6px) * -0.625)), 20px);
		--x1\.33fem: clamp(16px, calc(21.3px + ((1vw - 3.6px) * -0.8281)), 21.3px);
		--x1\.5fem: clamp(16px, calc(24px + ((1vw - 3.6px) * -1.25)), 24px);
		--x2fem: clamp(16px, calc(32px + ((1vw - 3.6px) * -2.5)), 32px);
		--x3fem: clamp(16px, calc(48px + ((1vw - 3.6px) * -5)), 48px);
		--x4fem: clamp(16px, calc(64px + ((1vw - 3.6px) * -7.5)), 64px);
		/* Root font-size */
		--fz-xxxs: clamp(10px, calc(10px + ((1vw - 3.6px) * 0.1563)), 11px);
		--fz-xxs: clamp(11px, calc(11px + ((1vw - 3.6px) * 0.1563)), 12px);
		--fz-xs: clamp(12px, calc(12px + ((1vw - 3.6px) * 0.1563)), 13px);
		--fz-sm: clamp(13px, calc(13px + ((1vw - 3.6px) * 0.1563)), 14px);
		--fz-ss: clamp(14px, calc(14px + ((1vw - 3.6px) * 0.1563)), 15px);
		--fz-rg: clamp(15px, calc(15px + ((1vw - 3.6px) * 0.1563)), 16px);
		--fz-md: clamp(15.3px, calc(15.3px + ((1vw - 3.6px) * 0.26563)), 17px);
		--fz-sl: clamp(15.6px, calc(15.6px + ((1vw - 3.6px) * 0.375)), 18px);
		--fz-ml: clamp(16px, calc(16px + ((1vw - 3.6px) * 0.4688)), 19px);
		--fz-lg: clamp(16.4px, calc(16.4px + ((1vw - 3.6px) * 0.7188)), 21px);
		--fz-xl: clamp(16.8px, calc(16.8px + ((1vw - 3.6px) * 1.125)), 24px);
		--fz-xxl: clamp(17.6px, calc(17.6px + ((1vw - 3.6px) * 1.4687)), 27px);
		--fz-xxxl: clamp(18.2px, calc(18.2px + ((1vw - 3.6px) * 1.8438)), 30px);
		--fz-sol: clamp(19.7px, calc(19.7px + ((1vw - 3.6px) * 2.0781)), 33px);
		--fz-ol: clamp(21.2px, calc(21.2px + ((1vw - 3.6px) * 2.3125)), 36px);
		--fz-xol: clamp(22.6px, calc(22.6px + ((1vw - 3.6px) * 2.5625)), 39px);
		--fz-xxol: clamp(24px, calc(24px + ((1vw - 3.6px) * 2.8125)), 42px);
		--fz-xxxol: clamp(25.4px, calc(25.4px + ((1vw - 3.6px) * 3.0625)), 45px);
		--fz-skl: clamp(26.7px, calc(26.7px + ((1vw - 3.6px) * 3.3281)), 48px);
		--fz-kl: clamp(27.9px, calc(27.9px + ((1vw - 3.6px) * 3.6094)), 51px);
		--fz-xkl: clamp(29.2px, calc(29.2px + ((1vw - 3.6px) * 3.875)), 54px);
		--fz-xxkl: clamp(30.4px, calc(30.4px + ((1vw - 3.6px) * 4.1563)), 57px);
		--fz-xxxkl: clamp(31.6px, calc(31.6px + ((1vw - 3.6px) * 4.4375)), 60px);
		--fz-sgl: clamp(32.7px, calc(32.7px + ((1vw - 3.6px) * 4.7344)), 63px);
		--fz-gl: clamp(33.8px, calc(33.8px + ((1vw - 3.6px) * 5.0313)), 66px);
		--fz-xgl: clamp(34.9px, calc(34.9px + ((1vw - 3.6px) * 5.3281)), 69px);
		--fz-xxgl: clamp(36px, calc(36px + ((1vw - 3.6px) * 5.625)), 72px);
		--fz-xxxgl: clamp(37px, calc(37px + ((1vw - 3.6px) * 5.9375)), 75px);
		--fz-shl: clamp(38px, calc(38px + ((1vw - 3.6px) * 6.25)), 78px);
		--fz-hl: clamp(39px, calc(39px + ((1vw - 3.6px) * 6.5625)), 81px);
		--fz-xhl: clamp(40px, calc(40px + ((1vw - 3.6px) * 6.875)), 84px);
		--fz-xxhl: clamp(40.9px, calc(40.9px + ((1vw - 3.6px) * 7.2031)), 87px);
		--fz-xxxhl: clamp(41.9px, calc(41.9px + ((1vw - 3.6px) * 7.5156)), 90px);
		--fz-sul: clamp(42.8px, calc(42.8px + ((1vw - 3.6px) * 7.8438)), 93px);
		--fz-ul: clamp(43.6px, calc(43.6px + ((1vw - 3.6px) * 8.1875)), 96px);
		--fz-xul: clamp(44.5px, calc(44.5px + ((1vw - 3.6px) * 8.5156)), 99px);
		--fz-xxul: clamp(45.3px, calc(45.3px + ((1vw - 3.6px) * 8.8594)), 102px);
		--fz-xxxul: clamp(46.2px, calc(46.2px + ((1vw - 3.6px) * 9.1875)), 105px);
		--fz-smgl: clamp(47px, calc(47px + ((1vw - 3.6px) * 9.5313)), 108px);
		--fz-mgl: clamp(47.7px, calc(47.7px + ((1vw - 3.6px) * 9.8906)), 111px);
		--fz-xmgl: clamp(48.5px, calc(48.5px + ((1vw - 3.6px) * 10.2344)), 114px);
		--fz-xxmgl: clamp(49.3px, calc(49.3px + ((1vw - 3.6px) * 10.5781)), 117px);
		--fz-xxxmgl: clamp(50px, calc(50px + ((1vw - 3.6px) * 10.9375)), 120px);
}

html {
		height: 100%;
		min-height: 0vw;
}

/* リセット */
body {
		font-stretch: initial;
		font-size-adjust: initial;
}

/* .magique（body） */
.magique {
		position: relative;
		z-index: 0;
		/* width */
		width: 100%;
		width: -webkit-fill-available;
		width: -moz-available;
		width: stretch;
		height: 100%;
		/* 基本設定 */
		line-height: var(--lh-base);
		letter-spacing: var(--lts-base);
		font-size: var(--fz-base);
		font-weight: var(--fw-base, 400);
		background: var(--c-base, hsl(223, 0%, 100%));
		color: var(--c-text, hsl(223, 0%, 18%));
		/* スマホを横向きにしても文字が大きくならない */
		-ms-text-size-adjust: 100%;
		-webkit-text-size-adjust: 100%;
		/* アンチエイリアス */
		text-rendering: optimizeLegibility;
		-webkit-font-smoothing: antialiased;
		-moz-osx-font-smoothing: grayscale;
		/* IEで疑似要素を表示させる用 */
		-webkit-font-kerning: normal;
		        font-kerning: normal;
		-webkit-font-variant-ligatures: common-ligatures contextual;
		        font-variant-ligatures: common-ligatures contextual;
		text-rendering: optimizeLegibility;
		/* 役物の字詰めを綺麗にする */
		-webkit-font-feature-settings: "kern", "clig", "calt", "palt";
		        font-feature-settings: "kern", "clig", "calt", "palt";
		/* 文章の折り返し指定 */
		overflow-wrap: anywhere;
		word-break: normal;
		line-break: strict;
}

/* スマホではスクロールバー非表示 */
@media screen and (max-width: 743.9px) {
		body {
				scrollbar-width: none;
		}
		body::-webkit-scrollbar {
				display: none;
		}
}
/* タブレット */
.magique.tablet {
		min-width: 1200px;
}

/* SP（412px未満） */
@media screen and (max-width: 411.9px) {
		body {
				min-width: 412px;
		}
}
/* bodyがスクロールバーでズレないようにする（PC） */
@media print, screen and (min-width: 744px) {
		.magique,
		.magique.ov-hidden {
				overflow-y: scroll;
		}
}
/* .marble（総囲い）
-------------------------------------- */
.marble {
		position: relative;
		/* width */
		width: 100%;
		width: -webkit-fill-available;
		width: -moz-available;
		width: stretch;
		height: auto;
		min-height: 100vh;
}

/* グラデーション*/
.marble {
		background: linear-gradient(300deg, white, hsl(223, 6%, 96%), hsl(223, 6%, 99%));
		background-size: 180% 180%;
		-webkit-animation: gradient-animation 18s ease infinite;
		        animation: gradient-animation 18s ease infinite;
}

@-webkit-keyframes gradient-animation {
		0% {
				background-position: 0% 50%;
		}
		50% {
				background-position: 100% 50%;
		}
		100% {
				background-position: 0% 50%;
		}
}

@keyframes gradient-animation {
		0% {
				background-position: 0% 50%;
		}
		50% {
				background-position: 100% 50%;
		}
		100% {
				background-position: 0% 50%;
		}
}
.marble::before,
.marble::after {
		content: "";
		display: block;
		/* width */
		width: 100%;
		width: -webkit-fill-available;
		width: -moz-available;
		width: stretch;
		height: 100vh;
		background: #FFF;
		pointer-events: none;
}

.marble::after {
		position: fixed;
		z-index: 20000;
		inset: 0;
		margin: auto;
		-webkit-transition: all 2s ease-out 0.3s;
		transition: all 2s ease-out 0.3s;
}

.marble.is-loaded::before {
		height: 0;
}

.marble.is-loaded::after {
		opacity: 0;
}

/* #overload（遷移ホワイトアウト用） */
#overload {
		position: fixed;
		z-index: 20000;
		inset: 0;
		margin: auto;
		display: block;
		/* width */
		width: 100%;
		width: -webkit-fill-available;
		width: -moz-available;
		width: stretch;
		height: 100vh;
		background: #FFF;
		pointer-events: none;
		opacity: 0;
}

#overload.is-whiteOut {
		opacity: 1;
		-webkit-transition: opacity 0.7s;
		transition: opacity 0.7s;
}

/* font-family
====================================== */
/* Body用 Root設定 */
:root {
		--ff-gothic: "Noto Sans", "Noto Sans JP", sans-serif;
		--ff-mincho: "Yu Mincho", serif;
		--ff-rounded: "M PLUS Rounded 1c", sans-serif;
}

/* Macの場合だけ、ヒラギノ明朝指定（同時に指定すると、winで太さがおかしくなる） */
.macos {
		--ff-mincho: "Hiragino Mincho ProN", "Yu Mincho", serif;
}

/* ベース、ゴシック体
-------------------------------------- */
body,
:lang(ja-GP) {
		font-family: "YakuHanJP", "Roboto", "Poppins", var(--ff-gothic);
}

:lang(ja-PGP),
:lang(ja-PopGP) {
		font-family: "YakuHanJP", "Roboto", "Poppins", var(--ff-gothic);
}

:lang(ja-HGP),
:lang(ja-HankGP) {
		font-family: "YakuHanJP", "Roboto", "Hanken Grotesk", var(--ff-gothic);
}

/* ゴシック体／等幅 */
:lang(ja-MonoGP),
:lang(ja-NotoMonoGP) {
		font-family: "Noto Sans Mono CJK JP", monospace;
}

/* ゴシック体／縦書き */
:lang(ja-VGP),
:lang(ja-GenShinVGP) {
		font-family: "YakuHanJP", "Gen Shin Gothic", sans-serif;
}

/* ゴシック体／その他 */
:lang(ja-NotoGP) {
		font-family: "YakuHanJP", "Roboto", var(--ff-gothic);
}

:lang(ja-BizGP) {
		font-family: "YakuHanJP", "Roboto", "BIZ UDPGothic", sans-serif;
}

:lang(ja-ZenKakuAGP) {
		font-family: "YakuHanJP", "Roboto", "Zen Kaku Gothic Antique", sans-serif;
}

:lang(ja-M1GP) {
		font-family: "YakuHanJP", "Roboto", "M PLUS 1", sans-serif;
}

/* 明朝体
-------------------------------------- */
:lang(ja-MP) {
		font-family: "YakuHanMP", var(--ff-mincho);
}

:lang(ja-SMP),
:lang(ja-ShipMP) {
		font-family: "YakuHanMP", "Shippori Mincho", serif;
}

:lang(ja-NotoMP) {
		font-family: "YakuHanMP", "Noto Serif", "Noto Serif JP", serif;
}

:lang(ja-BizMP) {
		font-family: "YakuHanMP", "Shippori Mincho B1", "BIZ UDPMincho", serif;
}

/* サンセリフ体（英字）
-------------------------------------- */
:lang(en-GP),
:lang(en-KumbGP) {
		font-family: "YakuHanJP", "Kumbh Sans", var(--ff-gothic);
}

:lang(en-SrcGP) {
		font-family: "YakuHanJP", "Source Sans Pro", var(--ff-gothic);
}

:lang(en-OverGP) {
		font-family: "YakuHanJP", "Overused Grotesk", var(--ff-gothic);
}

:lang(en-JostGP) {
		font-family: "YakuHanJP", "Jost", var(--ff-gothic);
}

:lang(en-MontGP) {
		font-family: "YakuHanJP", "Montserrat", var(--ff-gothic);
}

:lang(en-OnesGP) {
		font-family: "YakuHanJP", "Onest", var(--ff-gothic);
}

:lang(en-RoboFGP) {
		font-family: "YakuHanJP", "Roboto Flex", var(--ff-gothic);
}

:lang(en-HindGP) {
		font-family: "YakuHanJP", "Hind", var(--ff-gothic);
}

:lang(en-RaleGP) {
		font-family: "YakuHanJP", "Raleway", var(--ff-gothic);
}

:lang(en-A1GP) {
		font-family: "YakuHanJP", "Gothic A1", var(--ff-gothic);
}

:lang(en-OfitGP) {
		font-family: "YakuHanJP", "Outfit", var(--ff-gothic);
}

:lang(en-DDinGP) {
		font-family: "YakuHanJP", "D-DIN-PRO", var(--ff-gothic);
}

/* Condensed
-------------------------------------- */
:lang(en-CN),
:lang(en-DiniCN) {
		font-family: "YakuHanJP", "Dinish Condensed", var(--ff-gothic);
}

:lang(en-RoboCN) {
		font-family: "YakuHanJP", "Roboto Condensed", var(--ff-gothic);
}

:lang(en-OsFjCN) {
		font-family: "YakuHanJP", "Oswald", "Fjalla One", var(--ff-gothic);
}

:lang(en-OswaCN) {
		font-family: "YakuHanJP", "Oswald", var(--ff-gothic);
}

:lang(en-BebaCN) {
		font-family: "YakuHanJP", "Bebas Neue", var(--ff-gothic);
}

:lang(en-LeagCN) {
		font-family: "YakuHanJP", "League Gothic", var(--ff-gothic);
}

:lang(en-BarlCN) {
		font-family: "YakuHanJP", "Barlow Condensed", var(--ff-gothic);
}

/* セリフ体（英字）
-------------------------------------- */
:lang(en-MP),
:lang(en-CinzMP) {
		font-family: "YakuHanMP", "Cinzel", var(--ff-mincho);
}

:lang(en-SrcMP) {
		font-family: "YakuHanMP", "Source Serif Pro", var(--ff-mincho);
}

:lang(en-RuhlMP) {
		font-family: "YakuHanMP", "Frank Ruhl Libre", var(--ff-mincho);
}

:lang(en-BaskMP) {
		font-family: "YakuHanMP", "Libre Baskerville", var(--ff-mincho);
}

:lang(en-BodoMP) {
		font-family: "YakuHanMP", "Libre Bodoni", var(--ff-mincho);
}

:lang(en-CaslMP) {
		font-family: "YakuHanMP", "Libre Caslon Display", "Libre Caslon Text", var(--ff-mincho);
}

:lang(en-CrimMP) {
		font-family: "YakuHanMP", "Crimson Text", var(--ff-mincho);
}

:lang(en-CormMP) {
		font-family: "YakuHanMP", "Cormorant Infant", "Cormorant Garamond", var(--ff-mincho);
}

:lang(en-PrFrMP) {
		font-family: "YakuHanMP", "Prata", "Playfair Display", var(--ff-mincho);
}

:lang(en-CardMP) {
		font-family: "YakuHanMP", "Cardo", var(--ff-mincho);
}

:lang(en-MarcMP) {
		font-family: "YakuHanMP", "Marcellus", var(--ff-mincho);
}

/* 筆記体 */
:lang(en-CS),
:lang(en-DancCS) {
		font-family: "YakuHanMP", "Dancing Script", cursive;
}

:lang(en-AlluCS) {
		font-family: "YakuHanMP", "Allura", cursive;
}

:lang(en-VibeCS) {
		font-family: "YakuHanMP", "Great Vibes", cursive;
}

:lang(en-PetiCS) {
		font-family: "YakuHanMP", "Petit Formal Script", cursive;
}

:lang(en-PinyCS) {
		font-family: "YakuHanMP", "Pinyon Script", cursive;
}

:lang(en-TangCS) {
		font-family: "YakuHanMP", "Tangerine", cursive;
}

/* 丸文字 + ジャギ防止 */
:lang(ja-RP) {
		font-family: var(--ff-rounded);
		-webkit-transform: rotate(0.03deg);
		-ms-transform: rotate(0.03deg);
		    transform: rotate(0.03deg);
}

:lang(ja-M1RP) {
		font-family: "YakuHanRP", "M PLUS Rounded 1c", sans-serif;
		-webkit-transform: rotate(0.03deg);
		-ms-transform: rotate(0.03deg);
		    transform: rotate(0.03deg);
}

:lang(ja-LineRP) {
		font-family: "YakuHanRP", "LINE Seed JP_OTF", sans-serif;
}

:lang(ja-MoboRP).fw-200 {
		font-family: "YakuHanRP", "モボ-ExtraLight", sans-serif;
}

:lang(ja-MoboRP) {
		font-family: "YakuHanRP", "モボ-Regular", sans-serif;
}

:lang(ja-MoboRP).fw-600 {
		font-family: "YakuHanRP", "モボ-SemiBold", sans-serif;
}

:lang(ja-MoboRP).fw-700 {
		font-family: "YakuHanRP", "モボ-Bold", sans-serif;
}

:lang(ja-SRetRP) {
		font-family: "YakuHanRP", "Shin Retro Maru Gothic", sans-serif;
}

/* プログラミングフォント */
:lang(ja-CodeGP),
:lang(ja-HackGP) {
		font-family: "HackGen", monospace;
}

/* 記号用フォント */
:lang(ja-Sym),
:lang(ja-NanuGP) {
		font-family: "Nanum Gothic", monospace;
}

/* Reset
-------------------------------------- */
/* border-box */
*,
*::before,
*::after {
		-webkit-box-sizing: border-box;
		        box-sizing: border-box;
		margin: 0;
		padding: 0;
		border-width: 0;
}

/* タグリセット（IE対策） */
article,
aside,
figcaption,
figure,
footer,
header,
hgroup,
main,
nav,
section {
		display: block;
		margin: 0;
		padding: 0;
		font-size: 100%;
}

/* リスト系タグのリセット */
dl,
dt,
dd,
ul,
ol,
li,
menu,
menuitem {
		margin: 0;
		padding: 0;
		font-style: normal;
		font-weight: unset;
		list-style-type: none;
}

/* テーブルタグのリセット */
caption,
th,
td {
		margin: 0;
		padding: 0;
		font-style: normal;
		font-weight: unset;
		text-align: unset;
		text-decoration: none;
		vertical-align: middle;
}

/* 画像系タグのリセット */
img,
picture,
iframe,
embed,
video,
svg,
img[src$=".svg"] {
		display: inline-block;
		width: auto;
		max-width: 100%;
		vertical-align: middle;
		background-repeat: no-repeat;
		background-size: cover;
		shape-margin: 0.75pc;
		-o-object-fit: cover;
		   object-fit: cover;
}

picture {
		overflow: hidden;
}

/* svg：非表示（フィルター） */
.svg-filter {
		visibility: hidden;
		position: absolute;
		width: 0;
		height: 0;
		overflow: hidden;
}

/* 改行タグのリセット */
br,
wbr {
		font-size: 0;
}

/* Nobr（wbr:keep-all;）
-------------------------------------- */
nobr,
.nobr,
*:has(> wbr) {
		display: block;
		white-space: nowrap;
		-ms-word-break: break-all;
		-webkit-line-break: after-white-space;
		word-wrap: break-word;
		overflow-wrap: break-word;
		overflow-wrap: anywhere;
		word-break: keep-all;
}

/* 区切り（水平線）タグのリセット */
hr {
		margin: 0;
		padding: 0;
		height: 0;
		border: 0;
		overflow: visible;
}

/* 文章系タグのリセット */
p,
small,
em,
strong,
span,
s,
b,
u,
dfn,
abbr,
data,
time,
bdi,
bdo,
address {
		margin: 0;
		padding: 0;
		font-weight: unset;
		font-style: normal;
		text-decoration: none;
}

/* 数式系タグのリセット */
math,
mtext,
mn,
mi,
mo,
mspace,
msup,
msub,
msubsup,
mover,
munder {
		margin: 0;
		padding: 0;
		font-style: normal;
		font-weight: unset;
		text-decoration: none;
		white-space: nowrap;
}

math {
		/* Flex */
		display: -webkit-inline-box;
		display: -ms-inline-flexbox;
		display: inline-flex;
		-webkit-box-pack: center;
		    -ms-flex-pack: center;
		        justify-content: center;
		-webkit-box-align: center;
		    -ms-flex-align: center;
		        align-items: center;
}

/* dialog（モーダル）タグのリセット */
dialog {
		margin: 0;
		padding: 0;
}

dialog:focus-visible {
		outline: none;
}

/* .bold（太字） */
b.bold,
u.bold {
		font-weight: bold;
}

/* .underline（下線） */
b.underline,
u.underline {
		display: inline;
		text-decoration: underline solid currentColor;
		-webkit-text-decoration: underline solid currentColor;
		text-decoration-thickness: 1px;
		text-underline-offset: 5px;
}

/* inline-block */
i {
		display: inline-block;
		margin: 0;
		padding: 0;
		font-style: normal;
		text-decoration: none;
}

/* 斜体 */
i.italic {
		font-style: italic;
}

/* .strike（取り消し線） */
s.strike {
		position: relative;
		text-decoration: line-through;
		text-decoration-style: solid;
		text-decoration-color: var(--c-text, hsl(223, 6%, 13%));
		text-decoration-thickness: 1px;
}

/* マーカー（inline） */
mark {
		background-image: -webkit-gradient(linear, left top, right top, from(hsla(60, 96%, 79%, 0.7)), to(hsla(60, 96%, 93%, 0.7)));
		background-image: linear-gradient(90deg, hsla(60, 96%, 79%, 0.7), hsla(60, 96%, 93%, 0.7));
		background-repeat: no-repeat;
		background-position: bottom;
		background-size: 100% 100%;
}

/* ルビ */
ruby,
rb,
rt,
rp {
		margin: 0;
		padding: 0;
		font-style: normal;
		text-decoration: none;
}

/* 句読点 */
ins,
del {
		margin: 0;
		padding: 0;
		font-style: normal;
		text-decoration: none;
}

/* 引用（BOX） */
blockquote {
		margin: 0;
		padding: 0;
		background: #ebebeb;
}

/* 引用,疑似要素 */
q {
		display: inline-block;
		margin: 0;
		padding: 0;
		font-style: normal;
		text-decoration: none;
}

q::before,
q::after {
		content: "";
}

/* 引用 */
q.quote {
		background: #ebebeb;
}

/* コード系タグのリセット */
code,
kbd,
pre,
samp {
		background-color: var(--c-alumi, hsl(223, 6%, 93%));
		border-radius: 4px;
		font-size: 88%;
		padding: 0.0625em 0.25em;
		font-family: "HackGen", "PlemolJP", monospace;
}

/* summaryの三角消去 */
details,
summary {
		margin: 0;
		padding: 0;
		list-style: none;
}

summary::marker,
summary::-webkit-details-marker {
		display: none;
}

.ie summary::before {
		content: "" !important;
}

summary:focus {
		outline: none;
}

/* contenteditableのアウトライン消去 */
[contenteditable]:focus {
		outline: none;
}

/* a（link）
-------------------------------------- */
a {
		margin: 0;
		padding: 0;
		display: inline-block;
		vertical-align: middle;
		text-decoration: none;
		color: inherit;
		-webkit-transition: all 0.3s ease-in;
		transition: all 0.3s ease-in;
}

:is([href], [onclick]) {
		cursor: pointer;
}

:is([href], [onclick]),
:is([href], [onclick])::before,
:is([href], [onclick])::after {
		-webkit-transition: all 0.3s ease-in;
		transition: all 0.3s ease-in;
}

/* :is(:hover, :focus) */
@media (any-hover: hover) {
		:is([href], [onclick]):is(:hover, :focus) {
				opacity: 0.7;
		}
		:is([href], [onclick]):is(:active) {
				opacity: 1;
		}
}
/* PCのときは電話リンク無効 */
@media screen and (min-width: 744px) {
		a[href^="tel:"] {
				display: inline-block;
				pointer-events: none;
				cursor: none;
		}
}
/* cite>a（参照元） */
cite {
		margin: 0;
		padding: 0;
		font-style: normal;
}

cite > :is([href], [onclick]) {
		position: relative;
		color: var(--c-cassis);
		text-decoration: underline solid currentColor;
		-webkit-text-decoration: underline solid currentColor;
		text-decoration-thickness: 1px;
		text-underline-offset: 5px;
}

/* :hover */
@media (any-hover: hover) {
		cite > :is([href], [onclick]):is(:hover, :focus) {
				color: var(--c-cassis-l1);
				text-decoration-color: var(--c-cassis-l1);
		}
		cite > :is([href], [onclick]):is(:active) {
				text-decoration-color: var(--c-cassis);
				color: var(--c-cassis);
		}
}
/* a:_blank */
cite > a[target=_blank] {
		padding-right: 2.2em;
}

cite > a[target=_blank]::after {
		position: absolute;
		top: 0.45em;
		right: 0;
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-webkit-box-pack: center;
		    -ms-flex-pack: center;
		        justify-content: center;
		-webkit-box-align: center;
		    -ms-flex-align: center;
		        align-items: center;
		width: 1.3em;
		height: 0;
		font-size: 169%;
		/* Material Symbols */
		font-family: "Material Symbols Sharp";
		font-variation-settings: "FILL" 0, "wght" 300;
		content: "\e89e";
		color: var(--c-gray-500);
		text-decoration: none;
}

/* a:PDF */
cite > a[href$=".pdf"] {
		padding-right: 2.2em;
}

cite > a[href$=".pdf"]::after {
		position: absolute;
		top: 0.45em;
		right: 0;
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-webkit-box-pack: center;
		    -ms-flex-pack: center;
		        justify-content: center;
		-webkit-box-align: center;
		    -ms-flex-align: center;
		        align-items: center;
		width: 1.3em;
		height: 0;
		font-size: 169%;
		/* Material Symbols */
		font-family: "Material Symbols Sharp";
		font-variation-settings: "FILL" 0, "wght" 300;
		content: "\e415";
		color: var(--c-red-700);
		text-decoration: none;
}

/* フォーム：テキスト系タグのリセット
-------------------------------------- */
.magique :is(select,
textarea,
input[type=text],
input[type=date],
input[type=datetime-local],
input[type=email],
input[type=month],
input[type=number],
input[type=password],
input[type=search],
input[type=tel],
input[type=time],
input[type=url],
input[type=week]) {
		-webkit-appearance: none;
		   -moz-appearance: none;
		        appearance: none;
		max-width: 100%;
		border: 1px solid hsl(233, 13%, 84%);
		border-radius: 3px;
		background: var(--c-base, hsl(223, 0%, 100%));
		-webkit-box-shadow: inset 0 1px 1px hsla(0, 0%, 0%, 0.075);
		        box-shadow: inset 0 1px 1px hsla(0, 0%, 0%, 0.075);
		color: hsla(0, 0%, 0%, 0.7);
		font-size: var(--fz-ss);
		line-height: 1.5;
}

.magique :is(input[type=text],
input[type=date],
input[type=datetime-local],
input[type=email],
input[type=month],
input[type=password],
input[type=search],
input[type=tel],
input[type=time],
input[type=url],
input[type=week]) {
		/* width:full */
		width: 100%;
		width: -webkit-fill-available;
		width: -moz-available;
		width: stretch;
		height: calc(2.5em + 2px);
		padding: 0.5em 0.75em;
}

.magique input[type=number] {
		/* width:full */
		width: 100%;
		width: -webkit-fill-available;
		width: -moz-available;
		width: stretch;
		height: calc(2.5em + 2px);
		/* padding: 上  右  下  左 */
		padding: 0.5em 0em 0.5em 0.5em;
		text-align: center;
}

.magique select {
		height: calc(2.5em + 2px);
		padding: 0.45em 0.75em;
}

.magique textarea {
		width: 100%;
		height: auto;
		padding: 0.5em 0.5em;
}

/* :placeholder-shown */
.magique :is(textarea,
input[type=text],
input[type=date],
input[type=datetime-local],
input[type=email],
input[type=month],
input[type=number],
input[type=password],
input[type=search],
input[type=tel],
input[type=time],
input[type=url],
input[type=week]):-moz-placeholder-shown {
		background: var(--c-secondary-100);
		color: hsla(0, 0%, 0%, 0.26);
}
.magique :is(textarea,
input[type=text],
input[type=date],
input[type=datetime-local],
input[type=email],
input[type=month],
input[type=number],
input[type=password],
input[type=search],
input[type=tel],
input[type=time],
input[type=url],
input[type=week]):-ms-input-placeholder {
		background: var(--c-secondary-100);
		color: hsla(0, 0%, 0%, 0.26);
}
.magique select.placeholder-shown,
.magique :is(textarea,
input[type=text],
input[type=date],
input[type=datetime-local],
input[type=email],
input[type=month],
input[type=number],
input[type=password],
input[type=search],
input[type=tel],
input[type=time],
input[type=url],
input[type=week]):placeholder-shown {
		background: var(--c-secondary-100);
		color: hsla(0, 0%, 0%, 0.26);
}

/* :focus */
.magique select:focus,
.magique :is(textarea,
input[type=text],
input[type=date],
input[type=datetime-local],
input[type=email],
input[type=month],
input[type=number],
input[type=password],
input[type=search],
input[type=tel],
input[type=time],
input[type=url],
input[type=week]):focus {
		background: var(--c-base, hsl(223, 0%, 100%));
}

/* ::placeholder
-------------------------------------- */
.magique :is(textarea, input)::-moz-placeholder {
		color: rgba(0, 0, 0, 0.26);
}

.magique :is(textarea, input)::-webkit-input-placeholder {
		color: rgba(0, 0, 0, 0.26);
}

/* ::placeholder:focus */
.magique :is(textarea, input):focus::-moz-placeholder {
		color: transparent;
}

.magique :is(textarea, input):focus::-webkit-input-placeholder {
		color: transparent;
}

/* フォーム：ラベル・ボタン系タグのリセット
-------------------------------------- */
.magique label {
		display: -webkit-inline-box;
		display: -ms-inline-flexbox;
		display: inline-flex;
		-webkit-box-align: center;
		    -ms-flex-align: center;
		        align-items: center;
}

.magique button {
		-webkit-appearance: none;
		   -moz-appearance: none;
		        appearance: none;
		margin: 0;
		padding: 0;
		color: inherit;
		border: none;
		outline: none;
		background: none;
}