@charset "UTF-8";
/**
 * style.scss
 *
 * @use の順番 = カスケードの順番。詳細度が同じ場合は後に書いたものが優先。
 *
 * 接頭辞:
 *   l-  layout     骨格
 *   c-  component  再利用UI
 *   s-  section    ページ固有
 *   u-  utility    単機能クラス
 *
 * [将来] @layer について
 *   @layer でレイヤー順を宣言すると、詳細度に関わらずレイヤー順が優先される。
 *   utilitiesを最後に置けば !important が不要になる。
 *   追加方法: 各パーシャルを @layer {name} { ... } で囲い、このファイルの冒頭に
 *     @layer reset, base, layout, components, sections, animations, utilities;
 *   を1行加えるだけ。対応ブラウザ: Chrome 99+ / Firefox 97+ / Safari 15.4+
 */
/**
 * base/_custom-properties.scss
 *
 * ブラウザに残すデザイントークン（CSS変数）を出力する。
 * Sass変数の定義は config/_tokens.scss に閉じ込める。
 *
 * 変数名変更対応表:
 *   fz : --fz-1→10  2→12  3→14  4→16  5→18  6→20  7→24  8→32  9→48  10→64  11→80  12→96
 *   lh : --lh-1→100  2→120  3→140  4→150  5→170  6→200  7→240  8→300
 *   space: --space-1→4  2→5  3→6  4→8  5→10  6→12  7→16  8→20  9→24  ＋32〜96(8刻み)新規
 */
/**
 * config/_index.scss
 *
 * 各パーシャルの冒頭に1行書けば tokens と mixins が両方使える:
 *   @use "../config" as *;
 */
/**
 * config/_tokens.scss
 *
 * Sass変数だけを定義するファイル。ここからCSSは出力しない。
 * CSS変数の出力は base/_custom-properties.scss で行う。
 */
/**
 * config/_index.scss
 *
 * 各パーシャルの冒頭に1行書けば tokens と mixins が両方使える:
 *   @use "../config" as *;
 */
/**
 * config/_mixins.scss
 */
:root {
				--color-main: #f93099;
				--color-sub: #7dcef3;
				--color-accent: #ffff00;
				--color-bg: rgb(247.86, 247.86, 247.86);
				--color-bg-sub: rgb(243.1, 243.1, 243.1);
				--color-text: rgb(40.8, 40.8, 40.8);
				--color-text-sub: rgb(112.2, 112.2, 112.2);
				--color-border: rgb(207.4, 207.4, 207.4);
				--color-on-main: #ffffff;
				--color-on-sub: #111111;
				--color-on-accent: #111111;
				--color-on-success: #ffffff;
				--color-on-warning: #111111;
				--color-on-error: #ffffff;
				--color-on-info: #ffffff;
				--color-link: #f93099;
				--color-link-hover: #f93099;
				--color-link-visited: #f93099;
				--color-success: #1d9e75;
				--color-warning: #ef9f27;
				--color-error: #d93635;
				--color-info: #378add;
				--color-focus: #f93099;
				--selection-bg: #b1e5fe;
				--selection-text: inherit;
				--ff-base: "YakuHanJP", "Noto Sans JP", sans-serif;
				--ff-brand: "Zen Maru Gothic", sans-serif;
				--ff-serif: "Noto Serif JP", serif;
				--ff-en: "Inter", sans-serif;
				--fz-10: 1.0rem;
				--fz-12: 1.2rem;
				--fz-14: 1.4rem;
				--fz-16: 1.6rem;
				--fz-18: 1.8rem;
				--fz-20: 2.0rem;
				--fz-24: 2.4rem;
				--fz-32: 3.2rem;
				--fz-48: 4.8rem;
				--fz-64: 6.4rem;
				--fz-80: 8.0rem;
				--fz-96: 9.6rem;
				--fz-base: var(--fz-18);
				--lh-100: 1;
				--lh-120: 1.2;
				--lh-140: 1.4;
				--lh-150: 1.5;
				--lh-170: 1.7;
				--lh-200: 2.0;
				--lh-240: 2.4;
				--lh-300: 3.0;
				--lh-base: var(--lh-100);
				--ls-base: 0.05em;
				--fw-base: 400;
				--fw-bold: 700;
				--fw-black: 900;
				--space-0: 0;
				--space-4: 0.4rem;
				--space-5: 0.5rem;
				--space-6: 0.6rem;
				--space-8: 0.8rem;
				--space-10: 1.0rem;
				--space-12: 1.2rem;
				--space-16: 1.6rem;
				--space-20: 2.0rem;
				--space-24: 2.4rem;
				--space-32: 3.2rem;
				--space-40: 4.0rem;
				--space-48: 4.8rem;
				--space-56: 5.6rem;
				--space-64: 6.4rem;
				--space-72: 7.2rem;
				--space-80: 8.0rem;
				--space-88: 8.8rem;
				--space-96: 9.6rem;
				--space-section-lg: 18rem;
				--space-section-md: 13rem;
				--space-section-sm: 8rem;
				--space-section-xs: 4rem;
				--space-section-inline-lg: clamp(2.4rem, calc(-0.4571rem + 8.9286vw), 6.4rem);
				--space-section-inline-md: clamp(1.6rem, calc(-0.1143rem + 5.3571vw), 4rem);
				--space-section-inline-sm: clamp(1rem, calc(0rem + 3.125vw), 2.4rem);
				--space-section-block-lg: clamp(2.4rem, 6vw, 6.4rem);
				--space-section-block-md: clamp(1.6rem, 4vw, 4.0rem);
				--space-section-block-sm: clamp(1.0rem, 2vw, 2.4rem);
				--container-width: 1100px;
				--container-gutter: 2rem;
				--radius-xs: 0.4rem;
				--radius-sm: 1.0rem;
				--radius-md: 1.6rem;
				--radius-lg: 2.4rem;
				--radius-xl: 4.0rem;
				--radius-pill: 9999px;
				--shadow-sm: 0 2px 8px rgb(0 0 0 / 0.06);
				--shadow-md: 0 8px 24px rgb(0 0 0 / 0.08);
				--shadow-lg: 0 20px 60px rgb(0 0 0 / 0.12);
				--shadow-border: 0 0 0 1px rgb(207.4, 207.4, 207.4);
				--shadow-border-md: 0 0 0 2px rgb(207.4, 207.4, 207.4);
				--shadow-focus: 0 0 0 3px rgba(249, 48, 153, 0.18);
				--shadow-focus-error: 0 0 0 3px rgba(217, 54, 53, 0.18);
				--ease: cubic-bezier(0.25, 0.1, 0.25, 1);
				--ease-out: cubic-bezier(0, 0, 0.58, 1);
				--ease-in-out: cubic-bezier(0.42, 0, 0.58, 1);
				--ease-out-expo: cubic-bezier(0.23, 1, 0.32, 1);
				--ease-in-out-expo: cubic-bezier(0.86, 0, 0.07, 1);
				--duration: 0.3s;
				--duration-slow: 0.7s;
				--transition-base: var(--duration) var(--ease);
				--transition-slow: var(--duration-slow) var(--ease-out-expo);
				--z-base: 0;
				--z-fixed: 10;
				--z-overlay: 100;
				--z-modal: 200;
				--z-toast: 300;
				--link-decoration: none;
				--link-hover-decoration: none;
				--link-hover-opacity: 1;
}

@media (max-inline-size: 767px) {
				:root {
								--fz-base: var(--fz-16);
								--space-section-lg: 13rem;
								--space-section-md: 9rem;
								--space-section-sm: 6rem;
				}
}
/**
 * base/_destyle.scss
 *
 * destyle.css v4.0.1
 * https://github.com/nicolas-cusan/destyle.css
 * MIT License
 */
/*! destyle.css v4.0.1 | MIT License | https://github.com/nicolas-cusan/destyle.css */
*,
::before,
::after {
				-webkit-box-sizing: border-box;
				        box-sizing: border-box;
				border-style: solid;
				border-width: 0;
}

html {
				line-height: 1.15;
				-webkit-text-size-adjust: 100%;
				-webkit-tap-highlight-color: transparent;
				-moz-tab-size: 4;
				  -o-tab-size: 4;
				     tab-size: 4;
}

body {
				margin: 0;
}

h1, h2, h3, h4, h5, h6,
hr,
blockquote, p,
pre,
ol, ul, dl, dd,
figure,
address {
				margin: 0;
}

h1, h2, h3, h4, h5, h6 {
				font-size: inherit;
				font-weight: inherit;
}

ul, ol {
				padding: 0;
				list-style: none;
}

dt {
				font-weight: bold;
}

hr {
				overflow: visible;
				-webkit-box-sizing: content-box;
				        box-sizing: content-box;
				height: 0;
				color: inherit;
				border-top-width: 1px;
}

address {
				font-style: inherit;
}

a {
				color: inherit;
				text-decoration: none;
				background-color: transparent;
}

abbr[title] {
				-webkit-text-decoration: underline dotted;
				        text-decoration: underline dotted;
}

b, strong {
				font-weight: bolder;
}

code, kbd, samp, pre {
				font-family: monospace, monospace;
				font-size: inherit;
}

small {
				font-size: 80%;
}

sub, sup {
				position: relative;
				font-size: 75%;
				line-height: 0;
				vertical-align: baseline;
}

sub {
				bottom: -0.25em;
}

sup {
				top: -0.5em;
}

svg, img, embed, object, iframe {
				vertical-align: bottom;
}

button, input, optgroup, select, textarea {
				-webkit-appearance: none;
				-moz-appearance: none;
				appearance: none;
				vertical-align: middle;
				color: inherit;
				font: inherit;
				background: transparent;
				padding: 0;
				margin: 0;
				border-radius: 0;
				text-align: inherit;
				text-transform: inherit;
}

[type=checkbox] {
				-webkit-appearance: checkbox;
				-moz-appearance: checkbox;
				     appearance: checkbox;
}

[type=radio] {
				-webkit-appearance: radio;
				-moz-appearance: radio;
				     appearance: radio;
}

button,
[type=button],
[type=reset],
[type=submit] {
				cursor: pointer;
}

button:disabled,
[type=button]:disabled,
[type=reset]:disabled,
[type=submit]:disabled {
				cursor: default;
}

:-moz-focusring {
				outline: auto;
}

select:disabled {
				opacity: inherit;
}

option {
				padding: 0;
}

fieldset {
				margin: 0;
				padding: 0;
				border: 0;
				min-width: 0;
}

legend {
				padding: 0;
}

progress {
				vertical-align: baseline;
}

textarea {
				overflow: auto;
}

[type=number]::-webkit-inner-spin-button,
[type=number]::-webkit-outer-spin-button {
				height: auto;
}

[type=search] {
				outline-offset: -2px;
}

[type=search]::-webkit-search-decoration {
				-webkit-appearance: none;
}

::-webkit-file-upload-button {
				-webkit-appearance: button;
				font: inherit;
}

[type=number] {
				-moz-appearance: textfield;
}

label[for] {
				cursor: pointer;
}

details {
				display: block;
}

summary {
				display: list-item;
}

[contenteditable]:focus {
				outline: auto;
}

table {
				border-color: inherit;
				border-collapse: collapse;
}

caption {
				text-align: left;
}

td, th {
				vertical-align: top;
				padding: 0;
}

th {
				text-align: left;
				font-weight: bold;
}

/**
 * base/_reset-custom.scss
 *
 * destyle.css に足りないリセットと、ブラウザのデフォルト挙動の上書きを追記する
 */
img {
				max-inline-size: 100%;
				block-size: auto;
				vertical-align: bottom;
}

em {
				font-style: normal;
}

/**
 * base/_base.scss
 *
 * 要素セレクタのみ。クラスはここに書かない。
 * デスタイルのリセット後に「このサイトのデフォルト」を定義する。
 */
html {
				block-size: 100%;
				font-size: 62.5%;
				scroll-behavior: smooth;
}
@media (prefers-reduced-motion: reduce) {
				html {
								scroll-behavior: auto;
				}
}
html {
				-webkit-font-smoothing: antialiased;
				-moz-osx-font-smoothing: grayscale;
}

body {
				min-block-size: 100dvh;
				background: var(--color-bg);
				color: var(--color-text);
				font-size: var(--fz-base);
				line-height: var(--lh-base);
				font-weight: var(--fw-base);
				font-family: var(--ff-base);
				-webkit-font-feature-settings: "palt" 1;
				        font-feature-settings: "palt" 1;
				letter-spacing: var(--ls-base);
				text-rendering: optimizeLegibility;
}

a {
				color: var(--color-link);
				-webkit-text-decoration: var(--link-decoration);
				        text-decoration: var(--link-decoration);
				-webkit-transition: color var(--transition-base), opacity var(--transition-base);
				transition: color var(--transition-base), opacity var(--transition-base);
}
a:visited {
				color: var(--color-link-visited);
}
@media (hover: hover) and (pointer: fine) {
				a:hover {
								color: var(--color-link-hover);
								opacity: var(--link-hover-opacity);
				}
}
a img {
				-webkit-transition: opacity var(--transition-base);
				transition: opacity var(--transition-base);
}
@media (hover: hover) and (pointer: fine) {
				a:hover img {
								opacity: var(--link-hover-opacity);
				}
}

:focus-visible {
				outline: 2px solid var(--color-focus);
				outline-offset: 3px;
}

::-moz-selection {
				background-color: var(--selection-bg);
				color: var(--selection-text);
}

::selection {
				background-color: var(--selection-bg);
				color: var(--selection-text);
}

/**
 * layout/_layout.scss
 *
 * 接頭辞: l-
 * ページの骨格（header / footer / section / container）
 * 位置・幅・高さのみ。装飾はここに書かない。
 */
.l-container {
				inline-size: min(100%, 768px);
				margin-inline: auto;
				background: #feeaf2 url(../../../common/img/ichioshi52w/bg_stripe.svg) center top/auto scroll repeat;
}

.l-container--sm {
				--container-width: 780px;
}

.l-container--md {
				--container-width: 980px;
}

.l-container--lg {
				--container-width: 1100px;
}

.l-container--xl {
				--container-width: 1400px;
}

.l-footer {
				inline-size: 100%;
				padding-block: 8rem clamp(22rem, 19.3529rem + 7.3529vw, 25rem);
				padding-inline: var(--space-section-inline-lg);
}

.l-footer__btn {
				position: relative;
				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;
				inline-size: min(100%, 47rem);
				margin-inline: auto;
				-webkit-margin-after: var(--space-56);
				        margin-block-end: var(--space-56);
				padding-block: 1.3rem;
				border: 3px solid #fb6eb7;
				background-color: #ffffff;
				text-align: center;
				color: #fb6eb7;
				font-size: var(--fz-18);
				font-family: var(--ff-brand);
				font-weight: var(--fw-black);
				letter-spacing: 0;
				border-radius: var(--radius-pill);
}
.l-footer__btn::before {
				display: block;
				position: absolute;
				inset-inline-end: 1.6rem;
				inline-size: 14px;
				block-size: 14px;
				border: 3px solid #fb6eb7;
				-webkit-border-start: none;
				        border-inline-start: none;
				-webkit-border-after: none;
				        border-block-end: none;
				-webkit-transform: rotate(45deg);
				        transform: rotate(45deg);
				content: "";
}
.l-footer__btn::after {
				display: block;
				position: absolute;
				inset: -34px auto auto 50px;
				inline-size: 2rem;
				aspect-ratio: 20/48;
				background: url(../../../common/img/ichioshi52w/footer_shape.svg) center/contain no-repeat;
				content: "";
				-webkit-animation: bounce2 8s linear infinite;
				        animation: bounce2 8s linear infinite;
				-webkit-transform-origin: center bottom;
				        transform-origin: center bottom;
}

.l-footer__copy {
				display: block;
				text-align: center;
				color: rgb(88.4, 88.4, 88.4);
				font-size: var(--fz-12);
				font-family: var(--ff-en);
}

.l-section {
				-webkit-padding-after: var(--space-section-md);
				        padding-block-end: var(--space-section-md);
}
.l-section--lg {
				-webkit-padding-after: var(--space-section-lg);
				        padding-block-end: var(--space-section-lg);
}
.l-section--sm {
				-webkit-padding-after: var(--space-section-sm);
				        padding-block-end: var(--space-section-sm);
}
.l-section--clip {
				overflow: clip;
}

/**
 * sections/_s-sections.scss
 *
 * 接頭辞: s-
 * LP・ページ固有のスタイル
 */
.s-hero {
				position: relative;
				inline-size: 100%;
				aspect-ratio: 375/305;
				overflow-x: clip;
}

.s-hero__bg {
				position: absolute;
				inset: -3.5947% 0 0 0;
				inline-size: 100%;
				block-size: 100%;
				background: url(../../../common/img/ichioshi52w/hero_bg.webp) center/auto scroll no-repeat;
				-webkit-mask: url(../../../common/img/ichioshi52w/hero_mask.svg) center/100% 100% no-repeat;
				        mask: url(../../../common/img/ichioshi52w/hero_mask.svg) center/100% 100% no-repeat;
				/*
				mask-image: url(./img/hero_mask.svg);
				mask-size: 100% 100%;
				mask-repeat: no-repeat;
				*/
}

.s-hero__logo {
				position: absolute;
}
.s-hero__logo img {
				inline-size: 100%;
}
.s-hero__logo.s-hero__logo--sample {
				inset: 2.2875% auto auto 4.8%;
				inline-size: min(18.6666666667%, 143px);
}
.s-hero__logo.s-hero__logo--dshopping {
				inset: 1.9% auto auto 2.2%;
				display: -webkit-box;
				display: -ms-flexbox;
				display: flex;
				gap: 0.7rem;
				-webkit-box-align: end;
				    -ms-flex-align: end;
				        align-items: flex-end;
}
.s-hero__logo.s-hero__logo--dshopping a:first-child {
				inline-size: min(17.6vw, 134px);
}
.s-hero__logo.s-hero__logo--dshopping a:last-child {
				inline-size: min(10.6666666667vw, 83px);
}
.s-hero__logo.s-hero__logo--dpay {
				inset: 2.5% auto auto 2%;
				inline-size: min(26.6666666667%, 205px);
}

.s-hero__wrap {
				display: -webkit-box;
				display: -ms-flexbox;
				display: flex;
				-webkit-box-orient: vertical;
				-webkit-box-direction: normal;
				    -ms-flex-flow: column nowrap;
				        flex-flow: column nowrap;
				-webkit-box-pack: center;
				    -ms-flex-pack: center;
				        justify-content: center;
				-webkit-box-align: center;
				    -ms-flex-align: center;
				        align-items: center;
				position: absolute;
				inset-block-start: clamp(3.5rem, 13.3333333333%, 10.6rem);
				inline-size: min(66.6666666667%, 512px);
				aspect-ratio: 25/19;
				-webkit-padding-after: 5rem;
				        padding-block-end: 5rem;
}
.s-hero__wrap:has(.s-hero__text) {
				-webkit-padding-after: 0;
				        padding-block-end: 0;
}

.s-hero__h {
				width: 100%;
				aspect-ratio: 25/12;
}

.s-hero__text {
				inline-size: min(51.4666666667vw, 394px);
}
.s-hero__text img {
				inline-size: 100%;
}

.s-hero__pic {
				position: absolute;
				inset: auto -1.5% 13.0718% auto;
				inline-size: min(38.6666666667%, 297px);
}

.s-hero__shape {
				position: absolute;
				inset: auto -20.2666% -7.5163% auto;
				inline-size: min(70.1333333333%, 539px);
}
.s-hero__shape img {
				inline-size: 100%;
}

.s-products {
				position: relative;
				z-index: 1;
				-webkit-margin-before: clamp(-17rem, -0.7143rem - 21.2054vw, -7.5rem);
				        margin-block-start: clamp(-17rem, -0.7143rem - 21.2054vw, -7.5rem);
				padding-inline: var(--space-section-inline-md);
				-webkit-padding-after: var(--space-5);
				        padding-block-end: var(--space-5);
}

.s-cm {
				position: relative;
				z-index: 1;
				padding-inline: var(--space-section-inline-md);
				-webkit-padding-after: var(--space-section-sm);
				        padding-block-end: var(--space-section-sm);
}

.s-cm__h {
				-webkit-margin-after: var(--space-20);
				        margin-block-end: var(--space-20);
				text-align: center;
}
.s-cm__h img {
				inline-size: min(68.9013333333%, 529px);
}

.s-cm__wrap {
				-webkit-margin-after: 2rem;
				        margin-block-end: 2rem;
				aspect-ratio: 16/9;
}
.s-cm__wrap iframe {
				inline-size: 100%;
				block-size: 100%;
				border: 0;
}
.s-cm__wrap iframe + iframe {
				-webkit-margin-before: clamp(1.5rem, 0.4286rem + 3.3482vw, 3rem);
				        margin-block-start: clamp(1.5rem, 0.4286rem + 3.3482vw, 3rem);
}

.s-picks {
				position: relative;
				padding-block: var(--space-24) var(--space-section-xs);
				background-color: #ffffff;
}
.s-picks::before, .s-picks::after {
				display: block;
				position: absolute;
				inline-size: 100%;
				block-size: 15px;
				content: "";
}
.s-picks::before {
				inset-block-start: -15px;
				background: url(../../../common/img/ichioshi52w/tilde_start.svg) center/contain scroll repeat-x;
}
.s-picks::after {
				inset-block-end: -15px;
				background: url(../../../common/img/ichioshi52w/tilde_end.svg) center/contain scroll repeat-x;
}

.s-picks__h {
				-webkit-margin-after: var(--space-20);
				        margin-block-end: var(--space-20);
				text-align: center;
}
.s-picks__h img {
				inline-size: min(58.0506666667%, 446px);
}

.s-bnrs {
				padding-inline: var(--space-section-inline-md);
				padding-block: var(--space-64);
}

.s-bnrlist {
				display: -ms-grid;
				display: grid;
				gap: 1.5rem;
				justify-items: center;
				margin-inline: auto;
				inline-size: min(100%, 50rem);
}

.s-app {
				display: -ms-grid;
				display: grid;
				gap: 1.2rem;
				padding-inline: var(--space-section-inline-lg);
				padding-block: var(--space-section-block-md);
				background-color: #ffffff;
}

.s-app__wrap {
				display: -ms-grid;
				display: grid;
				-ms-grid-columns: 18.8405797101% 1rem 1fr;
				grid-template-columns: 18.8405797101% 1fr;
				justify-items: center;
				-webkit-box-align: center;
				    -ms-flex-align: center;
				        align-items: center;
				gap: 1rem;
}

.s-app__ico {
				inline-size: 100%;
				block-size: auto;
}
.s-app__ico img {
				inline-size: 100%;
}

.s-app__h {
				text-align: center;
				color: #fa44a3;
				font-size: clamp(2rem, 6.9333333333vw, 5.3rem);
				line-height: ver(--lh-120);
				font-family: var(--ff-brand);
				font-weight: var(--fw-black);
				letter-spacing: -0.1em;
}
.s-app__h span {
				font-size: 0.8em;
}

.s-app__badges {
				display: -webkit-box;
				display: -ms-flexbox;
				display: flex;
				-webkit-box-orient: horizontal;
				-webkit-box-direction: normal;
				    -ms-flex-flow: row nowrap;
				        flex-flow: row nowrap;
				-webkit-box-pack: center;
				    -ms-flex-pack: center;
				        justify-content: center;
				gap: 1.6rem;
}

.s-app__apple img {
				inline-size: auto;
				block-size: clamp(4.4rem, 13.6vw, 10.5rem);
}

.s-app__google img {
				inline-size: auto;
				block-size: clamp(4.4rem, 13.6vw, 10.5rem);
}

.s-first {
				padding-inline: var(--space-section-inline-md);
				-webkit-padding-before: var(--space-section-sm);
				        padding-block-start: var(--space-section-sm);
}

.s-first__a {
				position: relative;
				display: -webkit-box;
				display: -ms-flexbox;
				display: flex;
				-webkit-box-pack: center;
				    -ms-flex-pack: center;
				        justify-content: center;
				inline-size: min(100%, 47rem);
				margin-inline: auto;
				-webkit-margin-after: 2rem;
				        margin-block-end: 2rem;
				padding-block: 2.5rem;
				border: 5px solid #fb6eb7;
				background-color: #ffffff;
				border-radius: 2rem;
}
.s-first__a::before, .s-first__a::after {
				position: absolute;
				display: block;
				content: "";
}
.s-first__a::before {
				inset: -25px auto auto 15px;
				inline-size: 3.5rem;
				aspect-ratio: 35/52;
				background: url(../../../common/img/ichioshi52w/first_mark.svg) center/contain no-repeat;
				-webkit-animation: swing 1.3s ease-in-out 0s infinite alternate;
				        animation: swing 1.3s ease-in-out 0s infinite alternate;
}
.s-first__a::after {
				inset: -38px 20px auto auto;
				inline-size: 4.8rem;
				aspect-ratio: 48/44;
				background: url(../../../common/img/ichioshi52w/first_shape.svg) center/contain no-repeat;
				-webkit-animation: bounce 3.5s linear infinite;
				        animation: bounce 3.5s linear infinite;
				-webkit-transform-origin: center bottom;
				        transform-origin: center bottom;
}

.s-first__text {
				text-align: center;
				color: #fa44a3;
				font-size: var(--fz-24);
				line-height: var(--lh-150);
				font-family: var(--ff-brand);
				font-weight: var(--fw-black);
				letter-spacing: 0;
}

/**
 * animations/_animation.scss
 *
 * 方針:
 *   scroll-driven animationを @supports で囲む。
 *   非対応ブラウザ（Safari等）は @supports ブロックが丸ごと無視される。
 *   opacity:0 を @supports の外に書かないのがポイント
 *   → コンテンツが消えるリスクなし・JSフォールバック不要
 *
 * HTML:
 *   <div data-animate="fade-up">...</div>
 *   <li data-animate="fade-up" data-delay="200">...</li>
 *
 * 種別: fade-up / fade-down / fade-left / fade-right / fade-in / scale-up
 * delay: data-delay="100" 〜 "500"（ms）
 */
@-webkit-keyframes fadeUp {
				from {
								opacity: 0;
								translate: 0 2rem;
				}
}
@keyframes fadeUp {
				from {
								opacity: 0;
								translate: 0 2rem;
				}
}
@-webkit-keyframes fadeDown {
				from {
								opacity: 0;
								translate: 0 -2rem;
				}
}
@keyframes fadeDown {
				from {
								opacity: 0;
								translate: 0 -2rem;
				}
}
@-webkit-keyframes fadeLeft {
				from {
								opacity: 0;
								translate: -2rem 0;
				}
}
@keyframes fadeLeft {
				from {
								opacity: 0;
								translate: -2rem 0;
				}
}
@-webkit-keyframes fadeRight {
				from {
								opacity: 0;
								translate: 2rem 0;
				}
}
@keyframes fadeRight {
				from {
								opacity: 0;
								translate: 2rem 0;
				}
}
@-webkit-keyframes fadeIn {
				from {
								opacity: 0;
				}
}
@keyframes fadeIn {
				from {
								opacity: 0;
				}
}
@-webkit-keyframes scaleUp {
				from {
								opacity: 0;
								scale: 0.92;
				}
}
@keyframes scaleUp {
				from {
								opacity: 0;
								scale: 0.92;
				}
}
@-webkit-keyframes float {
				0% {
								-webkit-transform: translateY(-15px);
								        transform: translateY(-15px);
				}
				100% {
								-webkit-transform: translateY(0px);
								        transform: translateY(0px);
				}
}
@keyframes float {
				0% {
								-webkit-transform: translateY(-15px);
								        transform: translateY(-15px);
				}
				100% {
								-webkit-transform: translateY(0px);
								        transform: translateY(0px);
				}
}
@-webkit-keyframes swing {
				0% {
								-webkit-transform: rotate(-35deg);
								        transform: rotate(-35deg);
				}
				100% {
								-webkit-transform: rotate(5deg);
								        transform: rotate(5deg);
				}
}
@keyframes swing {
				0% {
								-webkit-transform: rotate(-35deg);
								        transform: rotate(-35deg);
				}
				100% {
								-webkit-transform: rotate(5deg);
								        transform: rotate(5deg);
				}
}
@-webkit-keyframes bounce {
				0% {
								-webkit-transform: translateY(0) scaleX(1.1) scaleY(0.8);
								        transform: translateY(0) scaleX(1.1) scaleY(0.8);
								-webkit-animation-timing-function: cubic-bezier(0.33, 0, 0.66, 0);
								        animation-timing-function: cubic-bezier(0.33, 0, 0.66, 0);
				}
				6.4% {
								-webkit-transform: translateY(-18px) scaleX(1) scaleY(1);
								        transform: translateY(-18px) scaleX(1) scaleY(1);
								-webkit-animation-timing-function: cubic-bezier(0.33, 1, 0.66, 1);
								        animation-timing-function: cubic-bezier(0.33, 1, 0.66, 1);
				}
				12.8% {
								-webkit-transform: translateY(0) scaleX(1.1) scaleY(0.8);
								        transform: translateY(0) scaleX(1.1) scaleY(0.8);
								-webkit-animation-timing-function: ease-in-out;
								        animation-timing-function: ease-in-out;
				}
				17.6% {
								-webkit-transform: translateY(0) scaleX(1) scaleY(1);
								        transform: translateY(0) scaleX(1) scaleY(1);
								-webkit-animation-timing-function: cubic-bezier(0.33, 0, 0.66, 0);
								        animation-timing-function: cubic-bezier(0.33, 0, 0.66, 0);
				}
				24% {
								-webkit-transform: translateY(-18px) scaleX(1) scaleY(1);
								        transform: translateY(-18px) scaleX(1) scaleY(1);
								-webkit-animation-timing-function: cubic-bezier(0.33, 1, 0.66, 1);
								        animation-timing-function: cubic-bezier(0.33, 1, 0.66, 1);
				}
				30.4% {
								-webkit-transform: translateY(0) scaleX(1.1) scaleY(0.8);
								        transform: translateY(0) scaleX(1.1) scaleY(0.8);
								-webkit-animation-timing-function: ease-in-out;
								        animation-timing-function: ease-in-out;
				}
				35.2% {
								-webkit-transform: translateY(0) scaleX(1) scaleY(1);
								        transform: translateY(0) scaleX(1) scaleY(1);
								-webkit-animation-timing-function: cubic-bezier(0.33, 0, 0.66, 0);
								        animation-timing-function: cubic-bezier(0.33, 0, 0.66, 0);
				}
				40% {
								-webkit-transform: translateY(-10px) scaleX(1) scaleY(1);
								        transform: translateY(-10px) scaleX(1) scaleY(1);
								-webkit-animation-timing-function: cubic-bezier(0.33, 1, 0.66, 1);
								        animation-timing-function: cubic-bezier(0.33, 1, 0.66, 1);
				}
				44.8% {
								-webkit-transform: translateY(0) scaleX(1.05) scaleY(0.95);
								        transform: translateY(0) scaleX(1.05) scaleY(0.95);
								-webkit-animation-timing-function: ease-in-out;
								        animation-timing-function: ease-in-out;
				}
				50%, 100% {
								-webkit-transform: translateY(0) scaleX(1) scaleY(1);
								        transform: translateY(0) scaleX(1) scaleY(1);
				}
}
@keyframes bounce {
				0% {
								-webkit-transform: translateY(0) scaleX(1.1) scaleY(0.8);
								        transform: translateY(0) scaleX(1.1) scaleY(0.8);
								-webkit-animation-timing-function: cubic-bezier(0.33, 0, 0.66, 0);
								        animation-timing-function: cubic-bezier(0.33, 0, 0.66, 0);
				}
				6.4% {
								-webkit-transform: translateY(-18px) scaleX(1) scaleY(1);
								        transform: translateY(-18px) scaleX(1) scaleY(1);
								-webkit-animation-timing-function: cubic-bezier(0.33, 1, 0.66, 1);
								        animation-timing-function: cubic-bezier(0.33, 1, 0.66, 1);
				}
				12.8% {
								-webkit-transform: translateY(0) scaleX(1.1) scaleY(0.8);
								        transform: translateY(0) scaleX(1.1) scaleY(0.8);
								-webkit-animation-timing-function: ease-in-out;
								        animation-timing-function: ease-in-out;
				}
				17.6% {
								-webkit-transform: translateY(0) scaleX(1) scaleY(1);
								        transform: translateY(0) scaleX(1) scaleY(1);
								-webkit-animation-timing-function: cubic-bezier(0.33, 0, 0.66, 0);
								        animation-timing-function: cubic-bezier(0.33, 0, 0.66, 0);
				}
				24% {
								-webkit-transform: translateY(-18px) scaleX(1) scaleY(1);
								        transform: translateY(-18px) scaleX(1) scaleY(1);
								-webkit-animation-timing-function: cubic-bezier(0.33, 1, 0.66, 1);
								        animation-timing-function: cubic-bezier(0.33, 1, 0.66, 1);
				}
				30.4% {
								-webkit-transform: translateY(0) scaleX(1.1) scaleY(0.8);
								        transform: translateY(0) scaleX(1.1) scaleY(0.8);
								-webkit-animation-timing-function: ease-in-out;
								        animation-timing-function: ease-in-out;
				}
				35.2% {
								-webkit-transform: translateY(0) scaleX(1) scaleY(1);
								        transform: translateY(0) scaleX(1) scaleY(1);
								-webkit-animation-timing-function: cubic-bezier(0.33, 0, 0.66, 0);
								        animation-timing-function: cubic-bezier(0.33, 0, 0.66, 0);
				}
				40% {
								-webkit-transform: translateY(-10px) scaleX(1) scaleY(1);
								        transform: translateY(-10px) scaleX(1) scaleY(1);
								-webkit-animation-timing-function: cubic-bezier(0.33, 1, 0.66, 1);
								        animation-timing-function: cubic-bezier(0.33, 1, 0.66, 1);
				}
				44.8% {
								-webkit-transform: translateY(0) scaleX(1.05) scaleY(0.95);
								        transform: translateY(0) scaleX(1.05) scaleY(0.95);
								-webkit-animation-timing-function: ease-in-out;
								        animation-timing-function: ease-in-out;
				}
				50%, 100% {
								-webkit-transform: translateY(0) scaleX(1) scaleY(1);
								        transform: translateY(0) scaleX(1) scaleY(1);
				}
}
@-webkit-keyframes bounce2 {
				0% {
								-webkit-transform: translateY(0) scaleX(1.1) scaleY(0.8);
								        transform: translateY(0) scaleX(1.1) scaleY(0.8);
								-webkit-animation-timing-function: cubic-bezier(0.33, 0, 0.66, 0);
								        animation-timing-function: cubic-bezier(0.33, 0, 0.66, 0);
				}
				3% {
								-webkit-transform: translateY(-20px) scaleX(1) scaleY(1);
								        transform: translateY(-20px) scaleX(1) scaleY(1);
								-webkit-animation-timing-function: cubic-bezier(0.33, 1, 0.66, 1);
								        animation-timing-function: cubic-bezier(0.33, 1, 0.66, 1);
				}
				9% {
								-webkit-transform: translateY(0) scaleX(1.1) scaleY(0.8);
								        transform: translateY(0) scaleX(1.1) scaleY(0.8);
								-webkit-animation-timing-function: ease-in-out;
								        animation-timing-function: ease-in-out;
				}
				12%, 100% {
								-webkit-transform: translateY(0) scaleX(1) scaleY(1);
								        transform: translateY(0) scaleX(1) scaleY(1);
				}
}
@keyframes bounce2 {
				0% {
								-webkit-transform: translateY(0) scaleX(1.1) scaleY(0.8);
								        transform: translateY(0) scaleX(1.1) scaleY(0.8);
								-webkit-animation-timing-function: cubic-bezier(0.33, 0, 0.66, 0);
								        animation-timing-function: cubic-bezier(0.33, 0, 0.66, 0);
				}
				3% {
								-webkit-transform: translateY(-20px) scaleX(1) scaleY(1);
								        transform: translateY(-20px) scaleX(1) scaleY(1);
								-webkit-animation-timing-function: cubic-bezier(0.33, 1, 0.66, 1);
								        animation-timing-function: cubic-bezier(0.33, 1, 0.66, 1);
				}
				9% {
								-webkit-transform: translateY(0) scaleX(1.1) scaleY(0.8);
								        transform: translateY(0) scaleX(1.1) scaleY(0.8);
								-webkit-animation-timing-function: ease-in-out;
								        animation-timing-function: ease-in-out;
				}
				12%, 100% {
								-webkit-transform: translateY(0) scaleX(1) scaleY(1);
								        transform: translateY(0) scaleX(1) scaleY(1);
				}
}
@supports (animation-timeline: view()) {
				[data-animate] {
								-webkit-animation-timing-function: var(--ease-out-expo);
								        animation-timing-function: var(--ease-out-expo);
								-webkit-animation-duration: var(--duration-slow);
								        animation-duration: var(--duration-slow);
								-webkit-animation-fill-mode: both;
								        animation-fill-mode: both;
								animation-timeline: view();
								animation-range: entry 0% entry 30%;
				}
				[data-animate=fade-up] {
								-webkit-animation-name: fadeUp;
								        animation-name: fadeUp;
				}
				[data-animate=fade-down] {
								-webkit-animation-name: fadeDown;
								        animation-name: fadeDown;
				}
				[data-animate=fade-left] {
								-webkit-animation-name: fadeLeft;
								        animation-name: fadeLeft;
				}
				[data-animate=fade-right] {
								-webkit-animation-name: fadeRight;
								        animation-name: fadeRight;
				}
				[data-animate=fade-in] {
								-webkit-animation-name: fadeIn;
								        animation-name: fadeIn;
				}
				[data-animate=scale-up] {
								-webkit-animation-name: scaleUp;
								        animation-name: scaleUp;
				}
				[data-delay="100"] {
								-webkit-animation-delay: 100ms;
								        animation-delay: 100ms;
				}
				[data-delay="200"] {
								-webkit-animation-delay: 200ms;
								        animation-delay: 200ms;
				}
				[data-delay="300"] {
								-webkit-animation-delay: 300ms;
								        animation-delay: 300ms;
				}
				[data-delay="400"] {
								-webkit-animation-delay: 400ms;
								        animation-delay: 400ms;
				}
				[data-delay="500"] {
								-webkit-animation-delay: 500ms;
								        animation-delay: 500ms;
				}
}
@media (prefers-reduced-motion: reduce) {
				[data-animate] {
								-webkit-animation: none !important;
								        animation: none !important;
				}
}
/**
 * utilities/_utilities.scss
 *
 * 接頭辞: u-
 * Tailwind v3 のクラス名規則に準拠
 * レスポンシブは u-md:hidden 記法（: はSass側でエスケープ済み）
 *
 * 例:
 *   <div class="u-hidden u-md:block">PCで表示</div>
 *   <p class="u-text-center u-md:text-left">SP中央・PC左</p>
 */
.u-hidden {
				display: none !important;
}

.u-block {
				display: block !important;
}

.u-inline {
				display: inline !important;
}

.u-inline-block {
				display: inline-block !important;
}

.u-flex {
				display: -webkit-box !important;
				display: -ms-flexbox !important;
				display: flex !important;
}

.u-grid {
				display: -ms-grid !important;
				display: grid !important;
}

.u-sr-only {
				position: absolute;
				width: 1px;
				height: 1px;
				padding: 0;
				margin: -1px;
				overflow: hidden;
				clip: rect(0, 0, 0, 0);
				white-space: nowrap;
				border: 0;
}

.u-flex-col {
				-webkit-box-orient: vertical !important;
				-webkit-box-direction: normal !important;
				    -ms-flex-direction: column !important;
				        flex-direction: column !important;
}

.u-flex-wrap {
				-ms-flex-wrap: wrap !important;
				    flex-wrap: wrap !important;
}

.u-items-center {
				-webkit-box-align: center !important;
				    -ms-flex-align: center !important;
				        align-items: center !important;
}

.u-items-start {
				-webkit-box-align: start !important;
				    -ms-flex-align: start !important;
				        align-items: flex-start !important;
}

.u-items-end {
				-webkit-box-align: end !important;
				    -ms-flex-align: end !important;
				        align-items: flex-end !important;
}

.u-justify-center {
				-webkit-box-pack: center !important;
				    -ms-flex-pack: center !important;
				        justify-content: center !important;
}

.u-justify-between {
				-webkit-box-pack: justify !important;
				    -ms-flex-pack: justify !important;
				        justify-content: space-between !important;
}

.u-justify-end {
				-webkit-box-pack: end !important;
				    -ms-flex-pack: end !important;
				        justify-content: flex-end !important;
}

.u-text-center {
				text-align: center !important;
}

.u-text-left {
				text-align: left !important;
}

.u-text-right {
				text-align: right !important;
}

.u-font-bold {
				font-weight: 700 !important;
}

.u-font-normal {
				font-weight: 400 !important;
}

.u-text-nowrap {
				white-space: nowrap !important;
}

.u-w-full {
				inline-size: 100% !important;
}

.u-w-auto {
				inline-size: auto !important;
}

.u-h-full {
				block-size: 100% !important;
}

.u-mx-auto {
				margin-inline: auto !important;
}

.u-my-auto {
				margin-block: auto !important;
}

.u-m-0 {
				margin: 0 !important;
}

.u-mt-0 {
				-webkit-margin-before: 0 !important;
				        margin-block-start: 0 !important;
}

.u-mb-0 {
				-webkit-margin-after: 0 !important;
				        margin-block-end: 0 !important;
}

.u-ml-0 {
				-webkit-margin-start: 0 !important;
				        margin-inline-start: 0 !important;
}

.u-mr-0 {
				-webkit-margin-end: 0 !important;
				        margin-inline-end: 0 !important;
}

.u-p-0 {
				padding: 0 !important;
}

.u-pt-0 {
				-webkit-padding-before: 0 !important;
				        padding-block-start: 0 !important;
}

.u-pb-0 {
				-webkit-padding-after: 0 !important;
				        padding-block-end: 0 !important;
}

.u-relative {
				position: relative !important;
}

.u-absolute {
				position: absolute !important;
}

.u-fixed {
				position: fixed !important;
}

.u-sticky {
				position: sticky !important;
}

.u-overflow-hidden {
				overflow: hidden !important;
}

.u-overflow-clip {
				overflow: clip !important;
}

.u-overflow-visible {
				overflow: visible !important;
}

@media (min-width: 768px) {
				.u-md\:hidden {
								display: none !important;
				}
				.u-md\:block {
								display: block !important;
				}
				.u-md\:inline-block {
								display: inline-block !important;
				}
				.u-md\:flex {
								display: -webkit-box !important;
								display: -ms-flexbox !important;
								display: flex !important;
				}
				.u-md\:grid {
								display: -ms-grid !important;
								display: grid !important;
				}
				.u-md\:text-center {
								text-align: center !important;
				}
				.u-md\:text-left {
								text-align: left !important;
				}
				.u-md\:w-full {
								inline-size: 100% !important;
				}
				.u-md\:w-auto {
								inline-size: auto !important;
				}
				.u-md\:mx-auto {
								margin-inline: auto !important;
				}
}
@media (min-width: 1024px) {
				.u-lg\:hidden {
								display: none !important;
				}
				.u-lg\:block {
								display: block !important;
				}
				.u-lg\:flex {
								display: -webkit-box !important;
								display: -ms-flexbox !important;
								display: flex !important;
				}
				.u-lg\:grid {
								display: -ms-grid !important;
								display: grid !important;
				}
				.u-lg\:text-center {
								text-align: center !important;
				}
				.u-lg\:text-left {
								text-align: left !important;
				}
				.u-lg\:w-full {
								inline-size: 100% !important;
				}
}
@media (max-width: 767px) {
				.u-max-md\:hidden {
								display: none !important;
				}
				.u-max-md\:block {
								display: block !important;
				}
				.u-max-md\:flex {
								display: -webkit-box !important;
								display: -ms-flexbox !important;
								display: flex !important;
				}
				.u-max-md\:text-center {
								text-align: center !important;
				}
				.u-max-md\:text-left {
								text-align: left !important;
				}
				.u-max-md\:w-full {
								inline-size: 100% !important;
				}
				.u-max-md\:mx-auto {
								margin-inline: auto !important;
				}
				.u-max-md\:mt-0 {
								-webkit-margin-before: 0 !important;
								        margin-block-start: 0 !important;
				}
				.u-max-md\:mb-0 {
								-webkit-margin-after: 0 !important;
								        margin-block-end: 0 !important;
				}
}
@media print {
				.u-print-hidden {
								display: none !important;
				}
}