﻿@charset "utf-8";
/*--------------------------------------------------------------------------------
 
  title

--------------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------------
  .c-ttl
--------------------------------------------------------------------------------*/
.c-ttl { line-height: var(--line-height-2s); }
.c-ttl:not([class*="u-mgb"]) { margin-bottom: calc(var(--ttl-mgb, var(--space-l)) + 1rem); }
.c-ttl.-center { text-align: center; }
.c-ttl_en {
  font-family: var(--ff-en);
  font-size: calc(2.2 * var(--fs-2l));
  font-weight: 500;
}
.c-ttl_jp {
  font-family: var(--ff-go);
  font-weight: 500;
  font-size: var(--fs-m);
  margin-top: 0.5rem;
}
.c-ttl_en:not([class*="u-fc"]) { color: var(--ttl-en-color, var(--color-primary)); }
.c-ttl_jp:not([class*="u-fc"]) { color: var(--ttl-jp-color, var(--txt-color)); }

/*--------------------------------------------------------------------------------
 
  icon

--------------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------------
  SVG 
--------------------------------------------------------------------------------*/
:root { 
  --icon-arrow: url("../icon/arrow.svg");
  --icon-newwin: url("../icon/newwin.svg");
  --icon-file: url("../icon/file.svg");
  --icon-tel: url("../icon/tel.svg");
  --icon-mail: url("../icon/mail.svg");

  /* SNS */
  --icon-fb: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path d="M16.6662114,5.0205501c.6982318,0,1.2602204.0167519,1.5837886.0502556V1.3350442c-.6130773-.1675221-2.1117182-.3350442-2.9802421-.3350442-4.5810636,0-6.6927784,2.1275415-6.6927784,6.7176688v1.7757422h-2.8269795v4.1210647h2.8269795l-.0012652,9.3855243h4.9719166l.0020952-9.3855243h3.7086505l.7693087-4.1210647h-4.4779592v-1.4574465c0-2.1778005.8685306-3.0154143,3.1164852-3.0154143Z"/></svg>');
  --icon-fb2: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path d="M23.5,12.0422676C23.5,5.6676474,18.3512765.5,12,.5S.5,5.6676474.5,12.0422676c0,5.4130755,3.7129109,9.9550762,8.72186,11.202371v-7.6752191h-2.3713977v-3.5271519h2.3713977v-1.5198287c0-3.9286148,1.7714015-5.7495428,5.614204-5.7495428.728557,0,1.9856844.1433794,2.4999613.2867588v3.1973772c-.2714236-.0286753-.742845-.043013-1.3285532-.043013-1.8856855,0-2.6142482.7168999-2.6142482,2.5808437v1.2474046h3.7563138l-.6453308,3.5271519h-3.110983v7.9305805c5.6941453-.6902845,10.1067761-5.5564944,10.1067761-11.4577324Z"/></svg>');
  --icon-insta: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path d="M12.0000017,6.2781897c-3.1354972.0001213-5.6772215,2.542017-5.6771001,5.6774826.0001213,3.1354652,2.5420426,5.6771646,5.6775398,5.6770437,3.1354112-.0001225,5.6771001-2.541884,5.6771001-5.6772636-.0060526-3.1330407-2.5444675-5.6713311-5.6775398-5.6772628ZM12.0000017,15.592676c-2.0086816-.0001208-3.6369417-1.6285613-3.6368204-3.6372227s1.6285777-3.6369051,3.6372594-3.6367838c2.0085096.0001213,3.6366988,1.6282936,3.6368204,3.636783-.0089152,2.0050788-1.6321604,3.6283085-3.6372594,3.6372236ZM17.8993005,4.8587639c.710426,0,1.28634.5759083,1.28634,1.2863271s-.5759141,1.2863271-1.28634,1.2863271-1.28634-.5759083-1.28634-1.2863271.5759141-1.2863271,1.28634-1.2863271ZM21.2257011,2.8185044c-1.1530194-1.1974479-2.7942192-1.8185016-4.6571797-1.8185016H7.4314811C3.5726813,1.0000027,1.0000014,3.5726567,1.0000014,7.431418v9.0927279c0,1.9071605.62106,3.5483438,1.86296,4.7460118,1.1976801,1.1532277,2.7940002,1.7298424,4.6129597,1.7298424h9.0483795c1.9071797,0,3.5039404-.6210533,4.6571797-1.7298424,1.1976801-1.1532277,1.8185197-2.7939712,1.8185197-4.7015731V7.431418c.0000017-1.8629413-.6210579-3.4596851-1.7742989-4.6129136ZM21.0483812,16.5683663c0,1.3749862-.4879605,2.4837752-1.28634,3.2379279s-1.9071797,1.1532277-3.2379605,1.1532277H7.4757011c-1.3305601,0-2.4395802-.3992965-3.2379601-1.1532277-.7983799-.7983715-1.1976801-1.9071605-1.1976801-3.2821467V7.431418c0-1.3305467.3993001-2.4395556,1.1976801-3.2379275.75394-.7539324,1.9071801-1.1532285,3.2379601-1.1532285h9.1372594c1.3305592,0,2.4395793.3992961,3.2379605,1.197668.7958484.870382,1.2249081,2.0144273,1.1976801,3.193488v9.1369483h-.0002199Z"/></svg>');
  --icon-x: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M13.7687132,10.5452031l6.921087-8.0452031h-1.6400753l-6.009579,6.9855367-4.799834-6.9855367H2.7042732l7.2582894,10.5633686-7.2582894,8.4366314h1.6401688l6.346271-7.3769642,5.0689746,7.3769642h5.5360391l-7.5274155-10.9547969s.0004028,0,.0004019,0ZM11.5222766,13.1564352l-.7354148-1.0518732L4.9354181,3.7346955h2.5192036l4.7221828,6.7547488.7354165,1.0518732,6.1382766,8.7801402h-2.5192024l-5.0090178-7.1646198s0-.0004028-.0000008-.0004028Z"/></svg>');
  --icon-line: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19.0580101,10.4039896c.3336964,0,.6042099.2705135.6042099.6042109,0,.3336954-.2705135.6042099-.6042099.6042099h-1.6817589v1.0782394h1.6817589c.3331871-.0002422.6034851.2696638.6037273.6028519s-.2696629.6034861-.6028519.6037283h-2.2873039c-.3317947-.002018-.5999851-.2710295-.6009903-.6028299v-4.5724001c.0010109-.3330226.2707272-.6027398.6037502-.6037502h2.2866592c.3334408.000762.6031322.2716885.6023712.6051302-.0007629.3334427-.2716904.6031322-.6051311.6023703h-1.6819897v1.0782404s1.6817589,0,1.6817589-.000001ZM15.3637505,13.2941702c-.0006752.259635-.1674528.4896946-.4139996.5710907-.061615.0197935-.1259537.0298052-.19067.0296707-.1921444.0041122-.3743467-.0852318-.4887505-.2396603l-2.3411703-3.1788321v2.8175001c.0065022.3326168-.2578669.6075258-.5904827.614028-.3326168.0065012-.6075258-.2578669-.614028-.5904827-.0001535-.0078478-.0001535-.0156984,0-.0235453v-4.5719395c.0000229-.2590623.166172-.4889092.4121599-.5701699.0597095-.0209746.1225538-.0316305.1858397-.0315099.1867123.0056219.3609743.0949917.4744902.24334l2.3591099,3.1912503v-2.8329105c0-.3334417.2703075-.6037502.6037502-.6037502s.6037502.270308.6037502.6037502c0,0,0,4.5721703.000001,4.5721703ZM9.8619204,13.2941702c0,.3329344-.2698965.6028299-.6028299.6028309-.3329344,0-.6028309-.2698965-.6028309-.6028309h0v-4.5721703c0-.3329339.2698965-.6028299.6028299-.6028299.3329344,0,.6028309.269896.6028309.6028299v4.5721703ZM7.4986701,13.8970001h-2.2866602c-.3323016-.0018797-.6013637-.2705317-.6037498-.6028299v-4.5721703c0-.3334417.270308-.6037502.6037502-.6037502s.6037502.270308.6037502.6037502v3.968421h1.68291c.3331876.0002422.6030941.2705402.6028519.6037283-.0002422.3328457-.2700062.6026106-.6028519.6028519M23.5,10.8361605c0-5.1471705-5.1607399-9.3361605-11.5-9.3361605S.5,5.6889899.5,10.8361605c0,4.6103497,4.0921602,8.4734297,9.6167603,9.2082777.37467.078661.8845806.2472496,1.0138397.56534.0892334.3379593.1016502.6916142.0363398,1.0349998l-.1570892.9775009c-.0430098.2884197-.2299995,1.1366596,1.0053301.6182404s6.6279106-3.9090805,9.0429096-6.6851807c1.652319-1.8103294,2.4419098-3.6639004,2.4419098-5.7191792"/></svg>');
  --icon-youtube: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path d="M22.5404207,6.7048233c-.2551152-.948792-.9962288-1.6899055-1.9450208-1.9450208-1.7157791-.4597992-8.5953999-.4597992-8.5953999-.4597992,0,0-6.87962,0-8.5953999.4597992-.9487683.2551572-1.6898639.9962523-1.9450199,1.9450208-.4595802,1.7155592-.4595802,5.2951801-.4595802,5.2951801,0,0,0,3.5796191.45958,5.2951801.2551293.9488306.9962197,1.6900012,1.9450199,1.945239,1.7157802.459581,8.5954001.459581,8.5954001.459581,0,0,6.8796191,0,8.5953999-.459581.9488239-.2551974,1.6899307-.9963882,1.9450191-1.945239.459581-1.7153394.459581-5.2951801.459581-5.2951801,0,0,0-3.5796208-.4595793-5.2951801ZM9.8,15.3000034v-6.6l5.7155991,3.3-5.7155991,3.3Z"/></svg>');
  --icon-tiktok: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path d="M12.6820013,1h3.7620013s-.2087811,4.8329605,5.2247784,5.1719806v3.7358173s-2.8998199.1819391-5.2247784-1.5934592l.0406995,7.7131995c0,3.8506647-3.121579,6.9722369-6.9722403,6.9722369s-6.9722403-3.121579-6.9722403-6.9722369c0-3.8505774,3.1214447-6.9721194,6.9720221-6.9722403h.9776801v3.8196399c-1.671246-.521127-3.4485141.4112311-3.9696411,2.0824771-.521127,1.6712427.4112311,3.4485107,2.0824771,3.9696411,1.671246.5211237,3.4485141-.4112311,3.9696378-2.0824738.0952026-.3053198.1436566-.6232886.1437036-.9431036l-.0340997-14.9014786Z"/></svg>');
}

/*--------------------------------------------------------------------------------
  .c-sns
--------------------------------------------------------------------------------*/
:root { --default-sns-size: 1.5rem; --default-sns-btn-size: 2.25rem; --default-sns-btn-pd: 0.35em; --default-sns-btn-rd: 100%; }
.c-sns-btn {
  flex-shrink: 0;
  width: var(--sns-btn-size, var(--default-sns-btn-size));
  height: var(--sns-btn-size, var(--default-sns-btn-size));
  line-height: 1;
  border-radius: var(--sns-btn-rd, var(--default-sns-btn-rd));
  background: var(--sns-btn-bg);
  padding: var(--sns-btn-pd, var(--default-sns-btn-pd));
  position: relative;
  overflow: hidden;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  vertical-align: middle;
  transition: var(--hover-trans);
}
.c-sns-btn.-color { --sns-bg: #FFF; --sns-bg-hover: #FFF; }
.c-sns-btn .c-sns {
  width: 100%;
  height: 100%;
}
.c-sns {
  flex-shrink: 0;
  width: var(--sns-size, var(--default-sns-size));
  height: var(--sns-size, var(--default-sns-size));
  line-height: 1;
  display: inline-block;
  vertical-align: middle;
  position: relative;
  background: var(--sns-bg, currentColor);
  color: currentColor;
  mask-repeat: no-repeat;
  mask-position: center center;
  mask-size: var(--sns-mask-size, cover);
  transition: var(--hover-trans);
}
.c-sns.-fb { mask-image: var(--icon-fb); }
.c-sns.-fb2 { mask-image: var(--icon-fb2); }
.c-sns.-insta { mask-image: var(--icon-insta); }
.c-sns.-x { mask-image: var(--icon-x); }
.c-sns.-line { mask-image: var(--icon-line); }
.c-sns.-youtube { mask-image: var(--icon-youtube); }
.c-sns.-tiktok { mask-image: var(--icon-tiktok); }
.c-sns.-mail { mask-image: var(--icon-mail); }
.c-sns.-tel { mask-image: var(--icon-tel); }
@media (hover: hover) {
  .c-sns:hover,
  a:hover .c-sns { background: var(--sns-bg-hover, currentColor); }
  .c-sns-btn:hover .c-sns { background: var(--sns-bg-hover, currentColor); }
  .c-sns-btn:hover { background: var(--sns-btn-bg-hover); }
}

/* button & logo color
----------------------------------------*/
.c-sns-btn.-color:has([class*="-insta"]),
.c-sns.-color[class*="-insta"] {
  background: -webkit-linear-gradient(135deg, #427eff 0%, #f13f79 70%) no-repeat;
  background: linear-gradient(135deg, #427eff 0%, #f13f79 70%) no-repeat;
  overflow: hidden;
}
.c-sns-btn.-color:has([class*="-insta"]):before,
.c-sns.-color[class*="-insta"]:before {
  content: "";
  width: 110%;
  height: 110%;
  position: absolute;
  left: -25%;
  top: 45%;
  background: -webkit-radial-gradient(#ffdb2c 10%, rgba(255, 105, 34, 0.65) 55%, rgba(255, 88, 96, 0) 70%);
  background: radial-gradient(#ffdb2c 10%, rgba(255, 105, 34, 0.65) 55%, rgba(255, 88, 96, 0) 70%);
}
.c-sns-btn.-color:has([class*="-fb"]),
.c-sns.-color[class*="-fb"] { background-color: #0866FF; }
.c-sns-btn.-color:has([class*="-x"]),
.c-sns.-color[class*="-x"] { background-color: #000; }
.c-sns-btn.-color:has([class*="-line"]),
.c-sns.-color[class*="-line"] { background-color: #06c755; }
.c-sns-btn.-color:has([class*="-youtube"]),
.c-sns.-color[class*="-youtube"] { background-color: #FF0000; }
.c-sns-btn.-color:has([class*="-tiktok"]),
.c-sns.-color[class*="-tiktok"] { background-color: #000; }

/*--------------------------------------------------------------------------------
  .c-arrow
--------------------------------------------------------------------------------*/
:root {
  /* default */
  --default-arrow-size: 2.8rem;
  --default-arrow-outline: 1px solid transparent;
  --default-arrow-outline-hover: 1px solid transparent;
  --default-arrow-bg: var(--color-gray-darker);
  --default-arrow-bg-hover: var(--color-primary);
  --default-arrow-color: #FFF;
  --default-arrow-color-hover: #FFF;
}
.c-arrow {
  cursor: pointer;
  display: inline-block;
  line-height: 1;
  width: var(--arrow-size, var(--default-arrow-size));
  height: var(--arrow-size, var(--default-arrow-size));
  color: var(--arrow-color, var(--default-arrow-color));
  position: relative;
}
.c-arrow.-prev { transform: rotate(180deg); }
.c-arrow.-down { transform: rotate(90deg); }
.c-arrow.-up { transform: rotate(-90deg); }
.c-arrow:before {
  content: "";
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
  border: var(--arrow-outline, var(--default-arrow-outline));
  background-color: var(--arrow-bg, var(--default-arrow-bg));
  border-radius: 50%;
  transition: color 0.2s ease-in-out, opacity 0.2s ease-in-out, background 0.2s ease-in-out, border 0.15s ease-in-out, fill 0.2s ease-in-out, filter 0.2s ease-in-out, transform 0.4s var(--cubic-bezier);
}
.c-arrow_icon {
  display: block;
  width: 100%;
  height: 100%;
  position: relative;
  overflow: hidden;
}
.c-arrow_icon:before,
.c-arrow_icon:after {
  content: "";
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
  z-index: 1;
  background: currentColor;
  color: currentColor;
  mask-image: var(--arrow-icon, var(--icon-arrow));
  mask-repeat: no-repeat;
  mask-position: center center;
  mask-size: var(--arrow-icon-size, 38%);
  animation-fill-mode: forwards;
}
.c-arrow_icon:after { transform: translateX(-100%); }
@media (hover: hover) {
  .c-arrow_icon:before { animation-duration: 0.8s; }
  .c-arrow_icon:after, a .c-arrow_icon:after { animation-duration: 0.4s; }
  .c-arrow:hover .c-arrow_icon:before, a:hover .c-arrow_icon:before,
  .c-arrow-txt:hover .c-arrow_icon:before,
  .c-arrow-link:hover .c-arrow_icon:before {
    animation-name: arrow_before;
    animation-delay: 0s;
  }
  .c-arrow:hover .c-arrow_icon:after, a:hover .c-arrow_icon:after,
  .c-arrow-txt:hover .c-arrow_icon:after,
  .c-arrow-link:hover .c-arrow_icon:after {
    animation-name: arrow_after;
    animation-delay: 0.05s;
  }
  .c-arrow.-no-anime .c-arrow_icon:before,
  .c-arrow.-no-anime .c-arrow_icon:after,
  .c-arrow[class*="disabled"] .c-arrow_icon:before,
  .c-arrow[class*="disabled"] .c-arrow_icon:after { animation: none; }
  a:hover .c-arrow,
  .c-arrow:hover,
  .c-arrow-txt:hover .c-arrow,
  .c-arrow-link:hover .c-arrow {
    color: var(--arrow-color-hover, var(--default-arrow-color-hover));
  }
  a:hover .c-arrow:before,
  .c-arrow:hover:before,
  .c-arrow-txt:hover .c-arrow:before,
  .c-arrow-link:hover .c-arrow:before {
    border: var(--arrow-outline-hover, var(--default-arrow-outline-hover));
    background-color: var(--arrow-bg-hover, var(--default-arrow-bg-hover));
    /*transform: scale(1.2);*/
  }
  a:hover .c-arrow.-no-anime:before,
  .c-arrow.-no-anime:hover:before,
  .c-arrow-txt:hover .c-arrow.-no-anime:before,
  .c-arrow-link:hover .c-arrow.-no-anime:before,
  a:hover .c-arrow[class*="disabled"]:hover:before,
  .c-arrow[class*="disabled"]:hover:before { transform: none; }
}
@keyframes arrow_before {
  0% { transform: translateX(0); opacity: 1; }
  100% { transform: translateX(100%); opacity: 0; }
}
@keyframes arrow_after {
  0% { transform: translateX(-100%); opacity: 0; }
  100% { transform: translateX(0); opacity: 1; }
}

/*--------------------------------------------------------------------------------
  .c-arrow-txt
--------------------------------------------------------------------------------*/
.c-arrow-txt {
  --link-color: var(--txt-color);
  --link-color-hover: var(--txt-color);
  --link-deco: none;
  --link-deco-hover: none;
  --default-arrow-txt-ff: ;
  --default-arrow-txt-fs: ;
  --default-arrow-txt-fw: ;
  --default-arrow-txt-cgap: 1rem;
}
.c-arrow-txt .c-arrow { flex-shrink: 0; }
.c-arrow-txt {
  vertical-align: top;
  position: relative;
  transition: var(--hover-trans);
}
.c-arrow-txt:has(.c-arrow) {
  display: inline-flex;
  align-items: center;
  column-gap: var(--arrow-txt-cgap, var(--default-arrow-txt-cgap));
}
.c-arrow-txt:not([class*="u-ff"]) { font-family: var(--arrow-txt-ff, var(--default-arrow-txt-ff)); }
.c-arrow-txt:not([class*="u-fs"]) { font-size: var(--arrow-txt-fs, var(--default-arrow-txt-fs)); }
.c-arrow-txt:not([class*="u-fw"]) { font-weight: var(--arrow-txt-fw, var(--default-arrow-txt-fw)); }

/*--------------------------------------------------------------------------------
  .c-file
--------------------------------------------------------------------------------*/
:root { --file-size: 1rem; --file-mgl: 0.5rem; --file-mgr: 0; --file-mgb: 0.15rem; }
.c-file {
  line-height: 1;
  vertical-align: middle;
  display: inline-flex;
  align-items: center;
  column-gap: 0.25rem;
  font-size: var(--fs-3s);
  color: var(--file-color, var(--color-primary));
}
.c-file:before {
  content: "";
  width: var(--file-size);
  height: var(--file-size);
  display: inline-block;
  margin-left:var(--file-mgl);
  margin-right: var(--file-mgr);
  margin-bottom: var(--file-mgb);
  background: currentColor;
  color: inherit;
  mask-image: var(--icon-file);
  mask-repeat: no-repeat;
  mask-position: center center;
  transition: var(--hover-trans);
}

/*--------------------------------------------------------------------------------
 
  button

--------------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------------
  .c-btn
--------------------------------------------------------------------------------*/
:root {
  /* default */
  --default-btn-fs: 1.1rem;
  --default-btn-ff: var(--ff-go);
  --default-btn-fw: 500;
  --default-btn-txt: #FFF;
  --default-btn-txt-hover: #FFF;
  --default-btn-pd: 1rem;
  --default-btn-pd-side: 2rem;
  /*--default-btn-width: ;*/
  /*--default-btn-width-min: ;*/
  --default-btn-radius: 0.4rem;
  --default-btn-bg: var(--color-primary);
  --default-btn-bg-hover: var(--color-primary-light);
  --default-btn-outline: transparent;
  --default-btn-outline-hover: transparent;
}
@media not (max-width: 760px) {
  :root { --default-btn-width-min: min(100%, 300px); }
}
@media (max-width: 760px) {
  :root { --default-btn-width-min: min(70%, 300px); }
}
.c-btn {
  --link-deco: none;
  --link-deco-hover: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  vertical-align: middle;
  border: none;
  margin: 0;
  outline: none;
  cursor: pointer;
  text-decoration: none;
  line-height: var(--btn-line-height, var(--line-height-s));
  display: inline-flex;
  vertical-align: top;
  justify-content: center;
  align-items: center;
  transition: var(--hover-trans);
  width: var(--btn-width, var(--default-btn-width));
  min-width: var(--btn-width-min, var(--default-btn-width-min));
  padding: var(--btn-pd, var(--default-btn-pd)) var(--btn-pd-side, var(--default-btn-pd-side));
  border-radius: var(--btn-radius, var(--default-btn-radius));
  border: var(--btn-outline, var(--default-btn-outline));
  background-color: var(--btn-bg, var(--default-btn-bg));
  color: var(--btn-txt, var(--default-btn-txt));
}
.c-btn:not([class*="u-fs"]) { font-size: var(--btn-fs, var(--default-btn-fs)); }
.c-btn:not([class*="u-fw"]) { font-weight: var(--btn-txt-fw, var(--default-btn-fw)); }
.c-btn:not([class*="u-ff"]) { font-family: var(--btn-txt-ff, var(--default-btn-ff)); }
.c-btn, .c-btn:hover { color: var(--btn-txt, var(--default-btn-txt)); text-decoration: none; }
@media (hover: hover) {
  .c-btn:hover {
    background-color: var(--btn-bg-hover, var(--default-btn-bg-hover));
    border: var(--btn-outline-hover, var(--default-btn-outline-hover));
    color: var(--btn-txt-hover, var(--default-btn-txt-hover));
  }
}


/*--------------------------------------------------------------------------------

  list

--------------------------------------------------------------------------------*/
:root { --list-mgl: 1.15em; --list-ol-mgl: 1.15em; }
.c-list { display: flex; flex-direction: column; line-height: var(--list-line-height, var(--line-height-s)); }
.c-list:not([class*="u-rgap"]):not([class*="u-gap"]) { row-gap: var(--list-rgap, 0.4rem); }
.c-list, ol.c-list { overflow: hidden; }
.c-list:not([data-list-style="none"]) > li { left: var(--list-mgl); padding-right: var(--list-mgl); list-style-type: disc; position: relative; }
ol.c-list:not([data-list-style="none"]) > li { left: var(--list-ol-mgl); padding-right: var(--list-ol-mgl); list-style-type: decimal; position: relative; }
.c-list[data-list-type="circle"] > li { list-style: circle; }
.c-list ul:not([class*="c-list"]):not(.c-notes),
.c-list ol:not([class*="c-list"]):not(.c-notes) { padding-left: 0.85em; }

/* .c-list-mark
----------------------------------------*/
.c-list-mark { --default-list-mark-size: 0.6em; --default-list-mark-mgt: 0.1em; --default-list-mark-pdl: 0.75em; }
.c-list-mark { display: flex; flex-direction: column; line-height: var(--list-line-height, var(--line-height-s)); }
.c-list-mark:not([class*="u-rgap"]):not([class*="u-gap"]) { row-gap: var(--list-rgap, 0.4rem); }
.c-list-mark li,
.c-list-mark:not(:has(li)) { position: relative; padding-left: calc(var(--list-mark-size, var(--default-list-mark-size)) + var(--list-mark-pdl, var(--default-list-mark-pdl))); }
.c-list-mark li:before,
.c-list-mark:not(:has(li)):before {
  content: "";
  width: var(--list-mark-size, var(--default-list-mark-size));
  height: var(--list-mark-size, var(--default-list-mark-size));
  font-size: var(--list-mark-fs);
  display: inline-block;
  vertical-align: middle;
  background-color: var(--list-mark-color, var(--color-secondary-lighter));
  position: absolute;
  left: 0;
  top: calc((1em - var(--list-mark-size, var(--default-list-mark-size))) + var(--list-mark-mgt, var(--default-list-mark-mgt)));
}
.c-list-mark.-circle li:before,
.c-list-mark.-circle:not(:has(li)):before {
  border-radius: 50%;
}

/* .c-list-dot
----------------------------------------*/
.c-list-dot { --default-list-dot-size: 1em; --default-list-dot-mgt: 0; --default-list-dot-pdl: 0em; }
.c-list-dot { display: flex; flex-direction: column; line-height: var(--list-line-height, var(--line-height-s)); }
.c-list-dot:not([class*="u-rgap"]):not([class*="u-gap"]) { row-gap: var(--list-rgap, 0.4rem); }
.c-list-dot li,
.c-list-dot:not(:has(li)) { position: relative; padding-left: calc(var(--list-dot-size, var(--default-list-dot-size)) + var(--list-dot-pdl, var(--default-list-dot-pdl))); }
.c-list-dot li:before,
.c-list-dot:not(:has(li)):before {
  content: "・";
  width: var(--list-dot-size, var(--default-list-dot-size));
  height: var(--list-dot-size, var(--default-list-dot-size));
  display: inline-block;
  vertical-align: middle;
  position: absolute;
  left: 0;
  top: calc((1em - var(--list-dot-size, var(--default-list-dot-size))) + var(--list-dot-mgt, var(--default-list-dot-mgt)));
}

/* .c-list-txt
   .c-notes
----------------------------------------*/
.c-list-txt:has(li),
.c-notes:has(li) { display: flex; flex-direction: column; line-height: var(--list-line-height, var(--line-height-s)); }
.c-list-txt:not(:has(li)),
.c-list-txt li:not(.col-full),
.c-notes:not(:has(li)),
.c-notes li:not(.col-full) { display: grid; grid-template-columns: max-content 1fr; }
.c-list-txt:not(:has(li)):not([class*="u-cgap"]):not([class*="u-gap"]),
.c-list-txt li:not([class*="u-cgap"]):not([class*="u-gap"]),
.c-notes:not(:has(li)):not([class*="u-cgap"]):not([class*="u-gap"]),
.c-notes li:not([class*="u-cgap"]):not([class*="u-gap"]) { column-gap: var(--list-txt-cgap, 0.4em); }
.c-list-txt:has(li):not([class*="u-rgap"]):not([class*="u-gap"]),
.c-notes:has(li):not([class*="u-rgap"]):not([class*="u-gap"]) { row-gap: var(--list-txt-rgap, 0.25rem); }

/* .c-list-kten
----------------------------------------*/
.c-list-kten li { display: inline; }
.c-list-kten li:not(:last-child):after {
  content: "、";
  width: 1em;
  height: 1em;
}

/* .c-list-slash
----------------------------------------*/
.c-list-slash li { display: inline; }
.c-list-slash li:not(:last-child):after {
  content: "／";
  width: 1em;
  height: 1em;
  margin: 0 0.25rem;
}

/*--------------------------------------------------------------------------------
  
  archive

--------------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------------
  .c-archive-list
--------------------------------------------------------------------------------*/
.c-archive-list {
  --link-color: var(--txt-color);
  --link-color-hover: var(--color-primary);
  --link-deco: none;
  --link-deco-hover: none;
  display: flex;
  flex-direction: column;
}
.c-archive-list_item {
  --pd: 1.25rem;
  --icon-size: 0.85rem;
  line-height: var(--line-height-s);
  border-bottom: 1px solid rgba(var(--rgb-border-color));
}
.c-archive-list_item:not(:has(a)),
.c-archive-list_item a {
  display: flex;
  column-gap: var(--space-s);
  row-gap: 0.25rem;
  padding: var(--pd);
  padding-left: 0;
  position: relative;
}
.c-archive-list_date {
  flex-shrink: 0;
  color: var(--color-gray);
  font-size: var(--fs-s);
  margin-top: calc(1rem - 1em);
}
.c-archive-list_ttl {
  --newwin-mgl: 0;
  --newwin-mgr: 0;
  --file-mgl: 0;
  --file-mgr: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.25rem 0.5rem;
}
.c-archive-list_item a { 
  padding-right: calc(var(--icon-size) + var(--pd) + 1rem);
}
.c-archive-list_item a:after {
  content: "";
  width: var(--icon-size);
  height: var(--icon-size);
  background: currentColor;
  color: var(--color-gray);
  mask-image: var(--icon-arrow);
  mask-repeat: no-repeat;
  mask-position: center center;
  mask-size: cover;
  transition: color 0.2s ease-in-out, transform 0.6s var(--cubic-bezier);
  position: absolute;
  right: var(--pd);
  top: 50%;
  transform: translateY(-50%);
}
.c-archive-list_item a[target="_blank"]:after {
  content: "";
  color: var(--color-gray);
  mask-image: var(--icon-newwin);
}
@media (max-width: 760px) {
  .c-archive-list_item:not(:has(a)),
  .c-archive-list_item a {
    flex-direction: column;
  }
}
@media (hover: hover) {
  .c-archive-list_item a:hover:after {
    color: var(--link-color-hover);
  }
  .c-archive-list_item a:not([target="_blank"]):hover:after {
    transform: translateY(-50%) translateX(0.4rem);
  }
}

/*--------------------------------------------------------------------------------

  article

--------------------------------------------------------------------------------*/
.c-article {
  padding-bottom: var(--space-3l);
}

/*--------------------------------------------------------------------------------
  .c-article-meta
  .c-article-date
  .c-article-ttl
--------------------------------------------------------------------------------*/
.c-article-meta {
  display: flex;
  flex-wrap: wrap;
  column-gap: 1.5rem;
  row-gap: 1rem;
  margin-bottom: 0.5rem;
}
.c-article-date,
.c-article-meta_date {
  color: var(--color-gray);
  font-size: var(--fs-s);
}
.c-article-date {
  display: inline-block;
  margin-bottom: 1rem;
}
.c-article-ttl {
  line-height: var(--line-height-s);
  font-family: var(--ff-go);
  font-size: var(--fs-2l);
  font-weight: 700;
  padding-bottom: 1em;
  border-bottom: 1px solid rgba(var(--rgb-border-color-dark));
}

/*--------------------------------------------------------------------------------
  .c-article-block-area
  .c-article-block
--------------------------------------------------------------------------------*/
.c-article-block-area {
  padding-top: var(--space-l);
}
.c-article-block {
  width: 100%;
}
.c-article-block-area > .c-article-block:not(:last-of-type) {
  padding-bottom: var(--space-l);
}
.c-article-block:after {
  content: "";
  display: block;
  height: 0;
  clear: both;
}

/*--------------------------------------------------------------------------------
  .c-article-columns
--------------------------------------------------------------------------------*/
.c-article-columns { --cgap: var(--space-3s); --rgap: var(--space-3s); }
.c-article-columns:has(.c-article-txt) { --cgap: var(--space-s); --rgap: var(--space-l); }
.c-article-columns.-col1 { --col: 100%; }
.c-article-columns:not(.-col1) .c-article-img { --pdb: var(--space-2s); }
@media not (max-width: 760px) { .c-article-columns.-col1 .c-article-img.-center { --pdt: var(--space-l); --pdb: var(--space-l); } }
/* col4 */
@media not (max-width: 1000px) { .c-article-columns.-col4 { --col: calc(((100% + var(--cgap)) / 4) - var(--cgap)); } }
@media (max-width: 1000px) { .c-article-columns.-col4 { --col: calc(((100% + var(--cgap)) / 3) - var(--cgap)); } }
@media (max-width: 760px) { .c-article-columns.-col4 { --col: calc(((100% + var(--cgap)) / 2) - var(--cgap)); } }
/* col3 */
@media not (max-width: 1000px) { .c-article-columns.-col3 { --col: calc(((100% + var(--cgap)) / 3) - var(--cgap)); } }
@media (max-width: 1000px) { .c-article-columns.-col3 { --col: calc(((100% + var(--cgap)) / 2) - var(--cgap)); } }
@media (max-width: 500px) {
  .c-article-columns.-col3 { --col: 100%; }
  .c-article-columns.-col3 .c-article-img { --pdb: var(--space-m); }
  .c-article-columns.-col3 > .c-article-block:has(.c-article-txt) { padding-bottom: calc(var(--space-2l) - var(--space-l)); }
}
/* col2 */
@media not (max-width: 500px) { .c-article-columns.-col2 { --col: calc(((100% + var(--cgap)) / 2) - var(--cgap)); } }
@media (max-width: 500px) {
  .c-article-columns.-col2 { --col: 100%; }
  .c-article-columns.-col2 .c-article-img { --pdb: var(--space-m); }
  .c-article-columns.-col2 > .c-article-block:has(.c-article-txt) { padding-bottom: calc(var(--space-2l) - var(--space-l)); }
}
.c-article-columns {
  display: flex;
  flex-wrap: wrap;
  align-items: start;
  column-gap: var(--cgap);
  row-gap: var(--rgap);
}
.c-article-columns:has(+ .c-article-columns) {
  padding-bottom: var(--space-m);
}
.c-article-columns:has(+ .c-article-heading, + .c-article-sheading) {
  padding-bottom: var(--space-l);
}
.c-article-columns:has(+ .c-article-block) {
  padding-bottom: var(--space-2l);
}
.c-article-columns .c-article-block {
  flex-basis: calc(var(--col) - 0.01px);
  /*max-width: fit-content;*/
  align-self: stretch;
}
.c-article-columns > .c-article-heading,
.c-article-columns > .c-article-sheading {
  width: 100%;
  margin-bottom: calc(-1 * var(--rgap));
}
.c-article-columns .c-article-block:has(> .c-article-img:nth-child(1):last-child) .c-article-img {
  margin-left: 0;
  margin-right: 0;
}
@media not (max-width: 760px) {
  /*.c-article-columns .c-article-block:has(.c-article-txt) { flex-grow: 1; }*/
  .c-article-columns .c-article-img.-left { margin-right: var(--space-s); }
  .c-article-columns .c-article-img.-right { margin-left: var(--space-s); }
  .c-article-columns.-col1 .c-article-img.-left { margin-right: var(--space-l); }
  .c-article-columns.-col1 .c-article-img.-right { margin-left: var(--space-l); }
}
@media (max-width: 760px) {
  .c-article-columns .c-article-img {
    min-width: fit-content;
  }
}

/*--------------------------------------------------------------------------------
  .c-article-txt
--------------------------------------------------------------------------------*/
.c-article-txt ul:not([class*="c-list"]),
.c-article-txt ol:not([class*="c-list"]) { overflow: hidden; }
.c-article-txt ul:not([class*="c-list"]) li { left: var(--list-mgl); padding-right: var(--list-mgl); list-style-type: disc; position: relative; }
.c-article-txt ol:not([class*="c-list"]) li { left: var(--list-ol-mgl); padding-right: var(--list-ol-mgl); list-style-type: decimal; position: relative; }
.c-article-txt img { vertical-align: middle; }
.c-article-txt table:not([class]) { max-width: 100%; }
@media not (max-width: 760px) {
  .c-article-txt table.-auto { width: auto; }
}
/* 絵文字 */
.c-article-txt img[src*="_mfile/smiley/"] {
  width: 1rem;
  vertical-align: middle;
  margin-bottom: 0.15rem;
}

/*--------------------------------------------------------------------------------
  .c-article-heading
  .c-article-sheading
--------------------------------------------------------------------------------*/
.c-article-heading,
.c-article-sheading { padding-top: calc(var(--space-2l) - var(--space-l)); }

/*--------------------------------------------------------------------------------
  .c-article-img
--------------------------------------------------------------------------------*/
.c-article-img { --pdb: var(--space-s); }
.c-article-img.-center { --pdt: var(--space-l); --pdb: var(--space-l); }
@media (max-width: 760px) {
  .c-article-img:not(:has(.c-article-img_cap)) { --pdb: var(--space-m); }
}
.c-article-img.-center {
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}
.c-article-block:has(.c-article-txt) .c-article-img {
  padding-bottom: var(--pdb);
}
.c-article-txt + .c-article-img.-center {
  padding-top: var(--pdt);
  padding-bottom: 0;
}
.c-article-img img {
  max-width: inherit;
  width: 100%;
}
@media not (max-width: 760px) {
  .c-article-img.-left,
  .c-article-img.-right {
    display: inline-block;
  }
  .c-article-img.-left {
    float: left;
    margin-right: var(--space-l);
  }
  .c-article-img.-right {
    float: right;
    margin-left: var(--space-l);
  }
}
@media (max-width: 760px) {
  .c-article-img {
    width: auto !important;
    min-width: fit-content;
    margin-left: auto;
    margin-right: auto;
  }
  .c-article-img img {
    width: auto !important;
    max-width: 100% !important;
  }
}
/* caption */
.c-article-img_cap {
  text-align: center;
  padding-top: 0.5rem;
  padding-bottom: 1rem;
  font-size: var(--fs-s);
}

/*--------------------------------------------------------------------------------
  .c-article-file
--------------------------------------------------------------------------------*/
.c-article-txt + .c-article-file {
  margin-top: var(--space-s);
}

/*--------------------------------------------------------------------------------

  alert

--------------------------------------------------------------------------------*/
.c-alert {
  margin-top: calc(-1 * var(--space-s));
  margin-bottom: var(--space-l);
  text-align: left;
  line-height: var(--line-height-s);
  border: 1px solid var(--color-red-light);
  background-color: var(--bg-red);
  color: var(--color-red);
  padding: min(3.5%, 1em);
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1rem;
  align-items: center;
  container-type: inline-size;
}
.c-alert_ttl {
  font-size: min(3.25cqw, var(--fs-2s));
  font-weight: bold;
  background-color: var(--color-red);
  color: #FFF;
  padding: 0.25rem 0.5rem;
  vertical-align: middle;
  white-space: nowrap;
}
.c-alert_mess {
  font-size: min(3.5cqw, var(--fs-s));
}

/*--------------------------------------------------------------------------------

  pager

--------------------------------------------------------------------------------*/
.c-pager {
  padding-top: var(--space-2l);
  display: grid;
  grid-auto-columns: 1fr 2fr 1fr;
  grid-template-areas: 
    "pager-prev pager-list pager-next";
  align-items: center;
  gap: var(--space-l) 1rem;
  line-height: 1;
}
.c-pager_prev { grid-area: pager-prev; justify-self: start; }
.c-pager_next { grid-area: pager-next; justify-self: end; text-align: right; }
.c-pager_select-field { grid-area: pager-list; justify-self: center; }
@media (max-width: 760px) {
  .c-pager {
    grid-auto-columns: 1fr 1fr;
    grid-template-areas: 
      "pager-list pager-list"
      "pager-prev pager-next";
  }
}
.c-pager_select-field {
  width: min(50%, 400px);
  min-width: fit-content;
  position: relative;
}
.c-pager_label:after {
  content: "";
  width: 2rem;
  height: 100%;
  position: absolute;
  right: 0.25rem;
  top: 0;
  z-index: 3;
  pointer-events: none;
  mask-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path d="M4,7l8,10,8-10H4Z"/></svg>');
  mask-repeat: no-repeat;
  mask-size: 40%;
  mask-position: center center;
  background-color: var(--txt-color);
}
.c-pager_label {
  padding: 0.75rem 2.25rem 0.75rem 1rem;
  border-radius: 0.2rem;
  position: relative;
  z-index: 2;
  pointer-events: none;
  display: flex;
  justify-content: center;
  align-items: center;
  border: 1px solid var(--border-color);
  background-color: var(--bg-gray);
}
.c-pager_select {
  outline: none;
  background: none;
  border: none;
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
  cursor: pointer;
}
.c-pager_select-field:has(.c-pager_select:focus) .c-pager_label {
  background-color: #FFF;
}
