@charset "UTF-8";
/* html5doctor.com Reset v1.6.1 (http://html5doctor.com/html-5-reset-stylesheet/) - http://cssreset.com */
html,body,div,span,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,abbr,address,cite,code,del,dfn,em,img,ins,kbd,q,samp,small,strong,sub,sup,var,b,i,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,figcaption,figure,footer,header,hgroup,menu,nav,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;outline:0;font-size:100%;vertical-align:baseline;background:transparent}
body{line-height:1}
article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}
nav ul{list-style:none}
blockquote,q{quotes:none}
blockquote::before,blockquote::after,q::before,q::after{content:none}
a{margin:0;padding:0;font-size:100%;vertical-align:baseline;background:transparent}
ins{background-color:#ff9;color:#000;text-decoration:none}
mark{background-color:#ff9;color:#000;font-style:italic;font-weight:bold}
del{text-decoration:line-through}
abbr[title],dfn[title]{border-bottom:1px dotted;cursor:help}
table{border-collapse:collapse;border-spacing:0}
ol,ul {list-style:none;}

body{font-family: 'YakuHanJP', 'Noto Sans JP', 游ゴシック体, 'Yu Gothic', YuGothic, 'ヒラギノ角ゴシック Pro', 'Hiragino Kaku Gothic Pro', メイリオ, Meiryo, Osaka, 'ＭＳ Ｐゴシック', 'MS PGothic', sans-serif; color:#222; font-weight:500; line-height:1.6; background:#fff;font-feature-settings: "palt";}
html{
    font-size: 62.5%;
    box-sizing: border-box;
}
*,
*::before,
*::after {
    box-sizing: inherit;
}
ul{list-style: none; }
a, input{outline:none;}
a {
    color:#155DFC;
}
sup {
    top: -.5em;
}
sub, sup {
    font-size: 75%;
    line-height: 0;
    position: relative;
    vertical-align: baseline;
}

/**** Start of "Micro cf" ****/
.cf { zoom: 1; }
.cf::before,
.cf::after { content: ""; display: table; }
.cf::after { clear: both; }

/* --------------------------------------------------------
	site setting
-------------------------------------------------------- */
:root {
    --keycolor:#00DCFF;
    --basecolor:#eff4f4;
    --scale-1440: calc(100vw / 1440);
}

.dsp--pc {
    display: none;
}

.dsp--sp {
    display: block;
}

@media (min-width: 769px) {
    .dsp--pc {
        display: block;
    }

    .dsp--sp {
        display: none;
    }
}

.dsp-inline--pc {
    display: inline;
}

.dsp-inline--sp {
    display: none;
}

.br--pc {
    display: none;
}

.br--sp {
    display: block;
}

@media (min-width: 769px) {
    .br--pc {
        display: block;
    }

    .br--sp {
        display: none;
    }
}

.ff-serif {
    font-family: "Noto Serif JP", serif;
    font-optical-sizing: auto;
    font-weight: 700;
    font-style: normal;
}

.ff-oswald {
    font-family: "Oswald", sans-serif;
    font-optical-sizing: auto;
    font-weight: 700;
    font-style: normal;
}

[class*="max-w-"] {
    margin-right: auto;
    margin-left: auto;
    width: 100%;
}

.max-w-1680 {
    max-width: 1680px;
}

.max-w-1500 {
    max-width: 1500px;
}

.max-w-1480 {
    max-width: 1480px;
}

.max-w-1440 {
    max-width: 1440px;
}

.max-w-1400 {
    max-width: 1400px;
}

.max-w-1280 {
    max-width: 1280px;
}

.max-w-1240 {
    max-width: 1240px;
}

.max-w-1200 {
    max-width: 1200px;
}

.max-w-1000 {
    max-width: 1000px;
}

.max-w-998 {
    max-width: 998px;
}

.max-w-960 {
    max-width: 960px;
}

.max-w-920 {
    max-width: 920px;
}

.max-w-840 {
    max-width: 840px;
}

.max-w-800 {
    max-width: 800px;
}

.max-w-700 {
    max-width: 700px;
}

.max-w-660 {
    max-width: 660px;
}

.max-w-640 {
    max-width: 640px;
}

.max-w-600 {
    max-width: 600px;
}

.max-w-540 {
    max-width: 540px;
}

.max-w-500 {
    max-width: 500px;
}

.max-w-400 {
    max-width: 400px;
}

.max-w-360 {
    max-width: 300px;
}

.max-w-300 {
    max-width: 300px;
}

.max-w-200 {
    max-width: 200px;
}

.limit-w-1440 {
    margin-inline:auto;
    max-width: 1440px;
}

.fc-black {
    color:#000;
}

.fc-white {
    color:#fff;
}

/* --------------------------------------------------------
  fluid typography（主要テキスト）
-------------------------------------------------------- */
.fs-100--min100 {
  font-size: 100px;
}

.fs-100--min56 {
  font-size: clamp(56px, calc(56px + 44 * ((100vw - 375px) / 393)), 100px);
}

.fs-74--min74 {
  font-size: 74px;
}

.fs-72--min60 {
  font-size: 72px;
}

.fs-60--min36 {
  font-size: clamp(36px, calc(36px + 24 * ((100vw - 375px) / 393)), 60px);;
}

.fs-48--min44 {
  font-size: clamp(44px, calc(44px + 4 * ((100vw - 375px) / 393)), 48px);
}

.fs-48--min40 {
  font-size: clamp(40px,calc(40px + (8 * ((100vw - 375px) / 393))),48px);
}

.fs-48--min36 {
  font-size: clamp(36px, calc(36px + 12 * ((100vw - 375px) / 393)), 48px);
}

.fs-48--min32 {
  font-size: clamp(32px, calc(32px + 16 * ((100vw - 375px) / 393)), 48px);
}

.fs-48--min30 {
  font-size: clamp(30px, calc(30px + 18 * ((100vw - 375px) / 393)), 48px);
}

.fs-40--min40 {
  font-size: 40px;
}

.fs-40--min36 {
  font-size: clamp(36px, calc(36px + 4 * ((100vw - 375px) / 393)), 40px);
}

.fs-40--min32 {
  font-size: clamp(32px, calc(32px + 8 * ((100vw - 375px) / 393)), 40px);
}

.fs-40--min30 {
  font-size: clamp(30px, calc(30px + 10 * ((100vw - 375px) / 393)), 40px);
}

.fs-40--min28 {
  font-size: clamp(28px, calc(28px + 12 * ((100vw - 375px) / 393)), 40px);;
}

.fs-36--min36 {
  font-size: 36px;
}

.fs-36--min32 {
  font-size: clamp(32px, calc(32px + 4 * ((100vw - 375px) / 393)), 36px);
}

.fs-36--min28 {
  font-size: clamp(28px, calc(28px + 8 * ((100vw - 375px) / 393)), 36px);
}

.fs-32--min32 {
    font-size: 32px;
}

.fs-32--min28 {
  font-size: clamp(28px, calc(28px + 4 * ((100vw - 375px) / 393)), 32px);
}

.fs-32--min24 {
  font-size: clamp(24px, calc(24px + 8 * ((100vw - 375px) / 393)), 32px);
}

.fs-32--min22 {
  font-size: clamp(22px, calc(22px + 10 * ((100vw - 375px) / 393)), 32px);
}

.fs-32--min20 {
  font-size: clamp(20px, calc(20px + 12 * ((100vw - 375px) / 393)), 32px);
}

.fs-30--min30 {
  font-size: 30px;
}

.fs-30--min24 {
  font-size: clamp(24px, calc(24px + 6 * ((100vw - 375px) / 393)), 30px);
}

.fs-28--min24 {
    font-size: clamp(24px, calc(24px + 4 * ((100vw - 375px) / 393)), 28px);
}

.fs-26--min26 {
    font-size: 26px;
}

.fs-26--min24 {
    font-size: clamp(24px, calc(24px + 2 * ((100vw - 375px) / 393)), 26px);
}

.fs-24--min24 {
  font-size: 24px;
}

.fs-24--min22 {
  font-size: clamp(22px, calc(22px + 2 * ((100vw - 375px) / 393)), 24px);
}

.fs-24--min20 {
  font-size: clamp(20px, calc(20px + 4 * ((100vw - 375px) / 393)), 24px);
}

.fs-24--min18 {
  font-size: clamp(18px, calc(18px + 6 * ((100vw - 375px) / 393)), 24px);;
}

.fs-24--min16 {
  font-size: clamp(16px, calc(16px + 8 * ((100vw - 375px) / 393)), 24px);
}

.fs-22--min22 {
  font-size: 22px;
}

.fs-20--min20 {
  font-size: 20px;
}

.fs-20--min18 {
  font-size: clamp(18px, calc(18px + 2 * ((100vw - 375px) / 393)), 20px);
}

.fs-18--min18 {
  font-size: 18px;
}

.fs-18--min16 {
  font-size: clamp(16px, calc(16px + 2 * ((100vw - 375px) / 393)), 18px);
}

.fs-18--min14 {
  font-size: clamp(16px, calc(16px + 2 * ((100vw - 375px) / 393)), 18px);
}

.fs-16--min16 {
  font-size: 16px;
}

.fs-16--min14 {
  font-size: clamp(14px, calc(14px + 2 * ((100vw - 375px) / 393)), 16px);
}

.fs-16--min12 {
  font-size: clamp(12px, calc(12px + 4 * ((100vw - 375px) / 393)), 16px);
}

.fs-14--min14 {
  font-size: 14px;
}

.fs-14--min12 {
  font-size: clamp(12px, calc(12px + 2 * ((100vw - 375px) / 393)), 14px);
}

.fs-14--min10 {
  font-size: clamp(10px, calc(10px + 4 * ((100vw - 375px) / 393)), 14px);
}

.fs-12--min14 {
    font-size: clamp(12px, calc(14px - 2 * ((100vw - 375px) / 393)), 14px);
}

.fs-12--min12 {
    font-size:12px;
}

.fs-11--min11 {
    font-size:11px;
}

.fs-10 {
    font-size:1.0rem;
}

.fw-900 {
    font-weight: 900;
}

.fw-700 {
    font-weight: 700;
}

.fw-600 {
    font-weight: 600;
}

.fw-500 {
    font-weight: 500;
}

.fw-400 {
    font-weight: 400;
}

.lh-200 {
    line-height: 2.0;
}

.lh-180 {
    line-height: 1.8;
}

.lh-175 {
    line-height: 1.75;
}

.lh-170 {
    line-height: 1.7;
}

.lh-150 {
    line-height: 1.5;
}

.lh-140 {
    line-height: 1.4;
}

.lh-130 {
    line-height: 1.3;
}

.lh-120 {
    line-height: 1.2;
}

.lh-100 {
    line-height: 1.0;
}

.ta-center {
    text-align: center;
}

.ta-right {
    text-align: right;
}

.ta-left {
    text-align: left;
}

.mb-4--min4 { margin-bottom: 4px; }
.mb-8--min8 { margin-bottom: 8px; }
.mb-10--min10 { margin-bottom: 10px; }
.mb-12--min12 { margin-bottom: 12px; }
.mb-16--min16 { margin-bottom: 16px; }
.mb-20--min20 { margin-bottom: 20px; }
.mb-24--min24 { margin-bottom: 24px; }
.mb-32--min32 { margin-bottom: 32px; }
.mb-32--min24 { margin-bottom: 32px; }
.mb-36--min36 { margin-bottom: 36px; }
.mb-40--min40 { margin-bottom: 40px; }
.mb-48--min48 { margin-bottom: 48px; }
.mb-48--min32 { margin-bottom: clamp(32px, calc(32px + 16 * ((100vw - 375px) / 393)), 48px); }
.mb-64--min64 { margin-bottom: 64px; }
.mb-64--min56 { margin-bottom: clamp(56px, calc(56px + 8 * ((100vw - 375px) / 393)), 64px); }
.mb-64--min48 { margin-bottom: clamp(48px, calc(48px + 16 * ((100vw - 375px) / 393)), 64px); }
.mb-72--min32 { margin-bottom: clamp(32px, calc(32px + 40 * ((100vw - 375px) / 393)), 72px); }

.p-20 { padding: clamp(16px, calc(16px + 4 * ((100vw - 375px) / 393)), 20px); }
.p-24 { padding: clamp(16px, calc(16px + 8 * ((100vw - 375px) / 393)), 24px); }
.p-32 { padding: clamp(16px, calc(16px + 16 * ((100vw - 375px) / 393)), 32px); }

/* 汎用ユーティリティクラス */
.w-full {
    width: 100% !important;
}
.h-full {
    height: 100% !important;
}

.text-indent {
    text-indent: 0;
    padding-left: 1em;
    text-indent: -1em;
}

.text--negative-indent {
    text-indent: -0.5em;
}

.flex-container {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    flex-wrap: wrap;
}

.jc-center {
    justify-content: center;
}

.fc-aice {
    align-items: center;
}

.fc-aife {
    align-items: flex-end;
}

.note-list {
    position: relative;
    list-style-type: none;
}

.note-list--inline {
    list-style-type: none;
    display: inline-flex;
    flex-direction: column;
}

.note-list > li,
.note-list--inline > li {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
}

.note-list li::before,
.note-list--inline li::before {
    content: '※';
    margin-right: 2px;
}

.note-list li + li,
.note-list--inline li + li {
    margin-top: 8px;
}

.disk-list {
    list-style-type: disc;
    margin-left: 20px;
}

.disk-list li {
}

.disk-list li + li {
    margin-top: 10px;
}

.decimal-list {
    list-style-type: decimal;
    margin-left: 20px;
}

.decimal-list li {
}

.decimal-list li + li {
    margin-top: 5px;
}

.number-list {
    list-style-type: none;
}

.number-list li {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    line-height: 1.5;
}

.number-list li + li {
    margin-top: 10px;
}

.number-list li:first-child::before {
    content: '①';
    display: inline;
    margin-right: 2px;
}

.number-list li:nth-child(2)::before {
    content: '②';
    display: inline;
}

.number-list li:nth-child(3)::before {
    content: '③';
    display: inline;
}

.hanging-indent {
    padding-left: 1.0em;
    text-indent: -1.0em;
    box-sizing: border-box;
}

.mbm-multiply {
    mix-blend-mode: multiply;
}

.mbm-overlay {
    mix-blend-mode: overlay;
}

.mbm-colorburn {
    mix-blend-mode: color-burn;
}

.ofw-anywhere {
    overflow-wrap: anywhere;
}

figure img {
    width:100%;
    height:auto;
}

/* --- 汎用ユーティリティ（Flexbox等） --- */
.d-flex { display: flex; }
.align-items-center { align-items: center; }
.align-items-start { align-items: flex-start; }
.justify-content-between { justify-content: space-between; }
.justify-content-center { justify-content: center; }
.gap-4 { gap: 4px; }
.gap-8 { gap: 8px; }
.mx-auto { margin-left: auto; margin-right: auto; }
.text-underline { text-decoration: underline; }

@media screen and (max-width: 1279px) {
    [class*="max-w-"] {
        width: calc(100% - 32px);
    }
    
    [class*="max-w-"] [class*="max-w-"] {
        width: 100%;
    }
}