:root{
	--client-hue: 50deg;
	--bg-lume: 98.5%;
	--bg-lume-flip: calc(100% - var(--bg-lume));
	--theme-color-lume: 45%;
	--_noti-bg: hsl(0deg 0% 50% / 0.025);
	--postlink-bg: hsl(0deg 0% 100%);
	--postbg-opacity: 0.5;
	--anchor-color: hsl(210deg 77% 44%);
	--max-width: 770px;
	--fs-15: calc(1rem * (15 / 16));
	--fs-14: calc(1rem * (14 / 16));
}
@view-transition {
	navigation: auto;
}
/* Create a custom animation */
@keyframes move-out {
  from {
    transform: translateY(0%);
    opacity: 1;
  }

  to {
    transform: translateY(-100%);
    opacity: 0;
  }
}

@keyframes move-in {
  from {
    transform: translateY(100%);
    opacity: 0;
  }

  to {
    transform: translateY(0%);
    opacity: 1;
  }
}

/* Apply the custom animation to the old and new page states */
::view-transition-old(root) {
	animation: 0.4s ease-in both move-out;
}

::view-transition-new(root) {
	animation: 0.4s ease-in both move-in;
}

@media (prefers-color-scheme: dark) {
	:root{
		--bg-lume: 13%;
		--theme-color-lume: 85%;
	}
}
*,*::before,*::after{
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}
html{
	scroll-behavior: smooth;
	scroll-padding-top: 60px;
	background: hsl(var(--client-hue) 40% calc(var(--bg-lume) - 5%));
}
body{
	--body-bg: var(--client-hue) 80% var(--bg-lume);
	display: grid;
	font-family: "Noto Sans JP", sans-serif;
	color: hsl(0deg 0% 20%);
	grid-template-columns: 1fr;
	grid-template-rows: auto 1fr auto;
	min-height: 100vh;
	min-height: 100dvh;
	word-break: break-all;
	background: hsl(0deg 0% var(--bg-lume) / 0.85);
	max-width: var(--max-width);
	margin-inline: auto;
	outline: 1px solid hsl(var(--client-hue) 80% var(--bg-lume-flip) / 0.15);
	box-shadow: 0 0 0.5rem 2px hsl(var(--client-hue) 80% var(--bg-lume-flip) / 0.25)
}
body.subgrid{
	grid-template-rows: auto auto 1fr auto;
}
@media (prefers-color-scheme: dark) {
	body {
		--body-bg: var(--client-hue) 13% 17%;
		--postlink-bg: hsl(0deg 0% 20%);
		--_noti-bg: hsl(0deg 0% 70% / 0.025);
		--postbg-opacity: 0.85;
		--anchor-color: hsl(210deg 77% 64%);
		color: hsl(0deg 0% 90%);
	}
}
a{
	color: var(--anchor-color);
}
header{
	/*max-width: var(--max-width);
	margin-inline: auto;*/
	/*--_icon-width: 4.5rem;*/
	background: hsl(0deg 0% var(--bg-lume) / 0.55);
	border-bottom: 1px solid hsl(0deg 0% var(--bg-lume-flip) / 0.55);
}
main{
	background: hsl(0deg 0% var(--bg-lume) / 0.85);
	position: relative;
}
footer{
	padding: 2rem 1rem 1rem;
	text-align: center;
}
img{
	max-width: 100%;
	vertical-align: middle;
}
button{
	-webkit-appearance: none;
	appearance: none;
	cursor: pointer;
}
.header_logo{
	padding: 0.75rem 1rem;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1rem;
	outline: 1px solid hsl(var());
}
.header_logo a{
	color: hsl(var(--client-hue) 60% var(--bg-lume-flip));
	text-decoration: none;
}
.header_logo__name{
	font-weight: 600;
}
.header_logo__link{
	font-size: var(--fs-15);
}
.client_thumb{
	outline: 1px solid hsl(var(--client-hue) 80% 55%);
	/*border-radius: 0 0 1rem 1rem;*/
	overflow: hidden;
	width: -webkit-fit-content;
	width: fit-content;
	margin-inline: auto;
}
.pagetitle{
	font-size: var(--fs-15);
	padding: 0.5rem 1rem;
	background: hsl(var(--client-hue) 30% 20% / 0.85);
	color: hsl(var(--client-hue) 30% 95%);
	border-bottom: 1px solid;
	display: flex;
	justify-content: space-between;
	align-items: center;
	position: sticky;
	z-index: 10;
	top: 0;
}
.pagetitle button{
	-webkit-appearance: none;
	appearance: none;
	color: inherit;
	border: 0;
	background: 0;
}
.pagetitle a{
	color: currentColor;
}
/*.client_infowrap{
	padding: 1rem;
}
.client_iconname{
	display: flex;
	gap: 0.5rem;
	align-items: center;
	margin-bottom: 1rem;
}
.client_icon{
	width: var(--_icon-width);
	aspect-ratio: 1;
	border-radius: 50%;
	overflow: hidden;
	text-align: center;
	border: 2px solid hsl(var(--client-hue) 80% 55%);
	position: relative;
	z-index: 10;
	font-size: 1.5rem;
	font-weight: 600;
	background: hsl(var(--client-hue) 80% 85%);
	display: grid;
	place-items: center;
	color: hsl(var(--client-hue) 80% 25%);
}
.client_icon img{
	position: absolute;
	inset: 0;
}
.client_info{
	text-align: center;
	position: relative;
	font-size: 0.9375rem;
}*/
.client_info__actions{
	bottom: 60px;
	z-index: 99;
	display: grid;
	margin-inline: auto;
	width: max-content;
}
.client_info__actions button{
	-webkit-appearance: none;
	appearance: none;
	background: 0;
	border: 0;
	outline: 0;
}
.client_info__actions img{
	width: 175px;
}
.client_info__actions a{
	display: inline-block;
	text-decoration: none;
}
.client_info__actions:has(.noti_off){
	margin-right: auto;
}
.client_info__actions .noti_off{
	background-image: url(../../client-assets/images/subdomain/btn_subscribe_off.webp);
	background-repeat: no-repeat;
	background-size: contain;
}
.client_info__actions--msg .noti_off{
	visibility: hidden;
}
@media (prefers-color-scheme: dark) {
	.client_info__actions .noti_off{
		background-image: url(../../client-assets/images/subdomain/btn_subscribe_off_dark.webp);
	}
}
.client_info__actions .noti_off img{
	opacity: 0;
}
.client_info__desc{
	padding: 1rem;
	font-size: var(--fs-15);
}
.desc-short{
	position: relative;
	height: 22px;
	overflow: hidden;
}
#readmore-span{
	font-size: 0.85em;
	display: inline-block;
	visibility: hidden;
}
#readmore-close,
#readmore-button{
	-webkit-appearance: none;
	appearance: none;
	background: none;
	border: 0;
	outline: 0;
	font: inherit;
	font-size: 0.85em;
	color: var(--anchor-color);
}
#readmore-button{
	position: absolute;
	bottom: 0;
	background: hsl(0deg 0% var(--bg-lume));
}
.desc-full{
	display: none;
}
.client_info__desc a{
	color: hsl(var(--client-hue) 50% 25%);
	font-weight: 600;
}
#loading-overlay{
	display: none;
}
.noposts{
	text-align: center;
	margin-block: 2rem;
}
.notiposts{
	margin-bottom: 1.5rem;
}
.notipost{
	display: grid;
	gap: 1rem;
	padding: 1.5rem 1rem;
	background: var(--_noti-bg);
}
.notipost:nth-child(even):not(:is(.notipost--page)){
	--_noti-bg: hsl(var(--client-hue) 60% calc(var(--bg-lume) - 5%) / var(--postbg-opacity));
}
.notipost--page{
	--_noti-bg: hsl(var(--client-hue) 66% 35% / 0.85);
	--postlink-bg: hsl(var(--client-hue) 36% 25% / 0.75);
	color: hsl(0deg 0% 100%);
}
.notipost--page:has(+ .notipost--page){
	border-bottom: 1px solid hsl(var(--client-hue) 66% 75%);
}
.notipost__title{
	font-weight: 600;
	line-height: 1.15;
	padding-bottom: 0.75rem;
	border-bottom: 1px solid hsl(0deg 0% calc(100% - var(--bg-lume)) / 0.25);
}
.notipost__title--page{
	font-size: 1.2rem;
	text-align: center;
	font-weight: 600;
}
.notipost__title--page small,
.notipost__title small{
	font-size: 0.75rem;
}
.notipost__texts{
	font-size: 0.875rem;
	display: flex;
	gap: 1rem;
	flex-wrap: wrap;
	align-items: flex-start;
	justify-content: center;
	container-type: inline-size;
}
.notipost__texts:has(.notipost__imgs){
	display: grid;
	justify-content: start;
	grid-template-columns: 1fr;
}
.notipost__content{
	flex: 1 0 min(20rem, 100%);
	display: grid;
	gap: 0.75rem;
}
.notipost__content .readmore{
	justify-self: center;
	padding: 0.5rem 1rem;
	font-weight: 600;
	font: inherti;
	color: inherit;
	border-radius: 0.75rem;
	text-decoration: none;
	background: 0;
	border: 1px solid;
}
.notipost__content .readmore:not(:last-child){
	margin-bottom: 1rem;
}
.overcontent{
	display: none;
}
.display-hidden .limitcontent{
	display: none;
}
.display-hidden .overcontent{
	display: block;
}
.display-hidden .notipost__content .readmore{
	/*display: none;*/
}
.notipost__imgs{
	display: flex;
	overflow-x: auto;
	gap: 1rem;
	white-space: nowrap;
	padding: 0.75rem;
}/* width */
.notipost__imgs::-webkit-scrollbar {
  width: 0.75rem;
}

/* Track */
.notipost__imgs::-webkit-scrollbar-track {
	outline: 1px solid hsl(0deg 0% calc(100% - var(--bg-lume)) / 0.55);
  border-radius: 5rem;
}
 
/* Handle */
.notipost__imgs::-webkit-scrollbar-thumb {
  background: hsl(0deg 0% calc(100% - var(--bg-lume)) / 0.25); 
  border-radius: 5rem;
}

/* Handle on hover */
.notipost__imgs::-webkit-scrollbar-thumb:hover {
  background: hsl(0deg 0% calc(100% - var(--bg-lume)) / 0.55);
}
.notipost__img{
	box-shadow: 0 0 0.5rem hsl(0deg 0% 50% / 50%);
	width: 100%;
	max-height: 50vh;
	position: relative;
	overflow: hidden;
	padding-bottom: 2.75rem;
}
.notipost__imgs .notipost__img{
	flex-shrink: 0;
	aspect-ratio: 1;
	width: 45%;
	background: hsl(0deg 0% 0% / 0.25);
}
@container(min-width: 495px){
	.notipost__img{
		width: min(13rem, 100%);
	}
	.notipost__imgs .notipost__img{
		width: min(10rem, 40%);
	}
}
.notipost--single:not(:has(.notipost__imgs)) .notipost__img{
	aspect-ratio: auto;
	width: 100%;
}
.notipost__img--within{
	display: grid;
	align-content: center;
}
.notipost__img--show{
	aspect-ratio: 0;
}
.notipost__img img{
	display: block;
	margin-inline: auto;
	object-fit: contain;
	object-position: center top;
}
.notipost__imgs .notipost__img img{
	object-position: center;
	height: 100%;
}
.notipost__img button{
	position: absolute;
	bottom: 0;
	text-align: center;
	border-width: 1px;
	border-color: hsl(0deg 0% 100% / 75%);
	background: hsl(0deg 0% 0% / 50%);
	color: hsl(0deg 0% 100% / 95%);
	font-size: 0.875rem;
	padding: 0.5rem;
}
.activatebutton{
	text-align: center;
}
.activatebutton button{
	padding: 0.5rem 0.75rem;
	-webkit-appearance: none;
	appearance: none;
	background: hsl(0deg 0% 100%);
	border-radius: 5rem;
	line-height: 1;
	font-size: 0.875rem;
	border: 1px solid hsl(0deg 0% 50%);
	color: hsl(0deg 0% 50%);
}
.notipost__link{
	text-align: center;
}
.notipost__link a{
	display: inline-block;
	padding: 0.5rem 1rem;
	width: min(12rem, 95%);
	background: var(--postlink-bg);
	color: inherit;
	text-decoration: none;
	border: 1px solid;
	font-weight: 600;
	border-radius: 5rem;
}
.listslink{
	margin-top: 2rem;
}
.tolists{
	color: hsl(var(--client-hue) 100% calc(100% - var(--bg-lume)));
}
.backtotop{
	display: grid;
	position: sticky;
	bottom: 0.5rem;
	margin-top: 1rem;
}
.backtotop a{
	margin-left: auto;
	padding: 0.75rem;
	text-align: center;
	border: 1px solid currentColor;
	line-height: 1;
	background: hsl(0deg 0% 100% / 0.75);
	border-radius: 0.75rem;
}
.messagebox{
	display: grid;
	gap: 1rem;
	margin: 2rem auto;
	max-width: var(--max-width);
	/*height: 100%;*/
}
.message_texts{
	--_scroll-size: 0.5rem;
	padding: 1rem;
	border: 1px solid hsl(var(--client-hue) 50% 25%);
	position: relative;
}/* width */
.message_texts::-webkit-scrollbar {
  width: var(--_scroll-size);
}

/* Track */
.message_texts::-webkit-scrollbar-track {
  background: hsl(var(--client-hue) 100% 40%);
}
 
/* Handle */
.message_texts::-webkit-scrollbar-thumb {
  background: hsl(var(--client-hue) 100% 50%);
}

/* Handle on hover */
.message_texts::-webkit-scrollbar-thumb:hover {
  background: hsl(var(--client-hue) 100% 65%);
}

.message_texts__inner{
	display: grid;
	gap: 0.5rem;
	padding-bottom: 1rem;
	height: min-content;
}
.message_texts__inner > div:last-child{
	padding-bottom: 7rem;
}
.msg{
	--_border-radius: 2rem;
	--_bg-color: hsl(0deg 0% var(--bg-lume) / 0.15);
	display: flex;
	gap: 0.25rem;
	align-items: flex-end;
}
.msg div,
.msg--date small{
	border: 1px solid hsl(var(--client-hue) 100% 25%);
	font-size: 0.875rem;
	border-radius: var(--_border-radius);
	background: var(--_bg-color);
}
.msg div{
	max-width: 80%;
	padding: 1rem;
}
.msg--client{
	--_border-radius: 0 1rem 1rem 1rem;
	justify-self: start;
}
.msg--user{
	--_border-radius: 1rem 0 1rem 1rem;
	--_bg-color: hsl(var(--client-hue) 100% 85% / 0.15);
	justify-self: end;
	flex-direction: row-reverse;
}
.msg-reload,
.msg--date{
	justify-self: center;
	align-self: start;
}
.msg-error{
	color: crimson;
}
.msg-error:empty{
	display: none;
}
.msg--date small{
	padding: 0.5em 0.75em;
	font-weight: 600;
	display: block;
	font-size: 0.75rem;
	border-radius: 2rem;
}
.message_input{
	display: flex;
	gap: 0.5rem;
	align-items: flex-end;
	position: sticky;
	bottom: 0;
	padding: 0.5rem;
	background: hsl(0deg 0% var(--bg-lume) / 0.75);
}
.message_input textarea{
	min-height: calc(2rem + 1em);
	max-height: calc(2rem + 10em);
	padding: 0.5rem;
	width: 100%;
	resize: none;
	border-radius: 0.5rem;
	border-color: hsl(var(--client-hue) 50% 25%);
	font: inherit;
}
.message_input button{
	padding: 0.75rem;
	font-size: 1rem;
	border-radius: 0.5rem;
	border-width: 1px;
	background: hsl(var(--client-hue) 50% 25%);
	color: hsl(0deg 0% 100%);
	border-color: hsl(var(--client-hue) 50% 15%);
}
@media(max-width: 800px){
	.messagebox{
		grid-template-columns: 1fr;
	}
}
.modalbutton button,
.msg-reload button{
	appearance: none;
	background: hsl(var(--client-hue) 50% 25%);
	color: hsl(0deg 0% 100%);
	border-color: hsl(var(--client-hue) 50% 15%);
	border-width: 1px;
	padding: 0.75rem 1rem;
	border-radius: 0.75rem;
	cursor: pointer;
}
.modal{
	display: none;
	position: fixed;
	inset: 0;
	background: hsl(0deg 0% 0% / 75%);
	z-index: 999;
	padding: 1rem;
	isolation: isolate;
}
.modal small{
	display: block;
}
.modal.active{
	display: grid;
	place-items: center;
}
.modalbg{
	position: absolute;
	inset: 0;
	z-index: -1;
}
.modalconts{
	background: hsl(0deg 0% var(--bg-lume));
	padding: 0.75rem;
	border-radius: 0.75rem;
	box-shadow: 0 0 0.5rem hsl(0deg 0% 0%);
	max-height: 100%;
	overflow-y: auto;
	max-width: 500px;
	margin-inline: auto;
}
.modal--postimg .modalconts{
	padding: 0;
	max-width: 800px;
}
.modalconts--popup{
	width: min(550px, 100%);
}
.modalconts ol{
	padding-left: 1.75rem;
	margin-block: 1rem;
}
.modaltitle{
	font-size: 1.15rem;
	font-weight: 600;
	text-align: center;
	margin-bottom: 1.25rem;
}
.modalbutton{
	margin-top: 1rem;
	text-align: center;
}
.modal--postimg .modalbutton{
	position: sticky;
	bottom: 0;
	padding-bottom: 0.5rem;
	display: flex;
	gap: 0.5rem;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
}
.modalbutton a{
	padding: 0.5rem;
	font-weight: 600;
	background: hsl(0deg 0% 100%);
	text-decoration: none;
	line-height: 1.15;
	border-radius: 0.5rem;
	box-shadow: 0 0 0.5rem hsl(0deg 0% 25%);
	color: hsl(0deg 0% 25%);
	font-size: 0.875rem;
}
.modalnav{
	position: fixed;
	display: grid;
	gap: 0.5rem;
	padding: 0.25rem;
	border-radius: 10rem;
	right: 1rem;
	bottom: 1rem;
	background: white;
	border: 1px outset hsl(0deg 0% 75%);
	box-shadow: 0 0 0.5rem hsl(0deg 0% 25% / 75%);
	text-align: center;
}
.modalnav button{
	width: 1.5rem;
	margin-inline: auto;
	line-height: 3rem;
	border-radius: 10rem;
	border-width: 1px;
	border-color: hsl(0deg 0% 75%);
	background: linear-gradient(135deg, hsl(0deg 0% 100%),hsl(0deg 0% 75%));
	box-shadow: inset 0 0 0.5rem hsl(0deg 0% 25% / 25%);
}
.modalnav div{
	font-size: 0.875rem;
	color: black;
}
.iosshare{
	display: inline-flex;
	align-items: baseline;
	line-height: 1;
	vertical-align: bottom;
	margin-inline: 0.15em;
}
.iosshare::before{
	content: "";
	width: 1.5em;
	height: 1.5em;
	background: url(../../client-assets/images/subdomain/ios-share.webp) no-repeat center;
	background-size: contain;
}

.noti_on.loading,
.noti_off.loading
{
	opacity: 0.5;
}
.stick-front{
	position: sticky;
}
.stick-front:has(.noti_off){
	position: static;
}

#reload-icon {
	display: none; 
	position: fixed; 
	top: 50%; 
	left: 50%; 
	transform: translate(-50%, -50%); 
	font-size: 2em; 
	z-index: 9999;
}

.sticky-nav{
	display: flex;
	width: 100%;
	bottom: 0;
	z-index: 200;
	border-top: 1px solid hsl(var(--client-hue) 60% var(--bg-lume-flip) / 0.5);
	background: hsl(0deg 0% var(--bg-lume));
	color: hsl(0deg 0% var(--bg-lume-flip));
}
.sticky-nav a,.sticky-nav button{
	flex: 1 0 5rem;
	text-align: center;
	display: grid;
	justify-content: center;
	justify-items: center;
	text-decoration: none;
	color: inherit;
	padding: 0.5rem 0;
	line-height: 1.25;
}
.sticky-nav button{
	-webkit-appearance: none;
	appearance: none;
	background: 0;
	border: 0;
}
.sticky-nav .active{
	background: hsl(0deg 0% 60% / 0.1);
}
.sticky-message{
	position: relative;
}
.sticky-message span{
	position: absolute;
	top: 0.25rem;
	right: 0.25rem;
	background: hsl(0deg 60% 50%);
	font-size: 0.8125rem;
	font-weight: 700;
	color: hsl(0deg 0% 100%);
	padding: 0.15em;
	border-radius: 5px;
}

.form-wrapper{
	padding: 1.5rem 1rem;
	display: grid;
	gap: 1.5rem;
}
.form-inner{
	padding: 1rem;
	border-radius: 0.75rem;
	background: hsl(var(--client-hue) 60% calc(var(--bg-lume) - 5%) / 0.25);
	border: 1px solid hsl(0deg 0% 0% / 0.35);
	box-shadow: 0 0 0.5rem hsl(0deg 0% var(--bg-lume-flip) / 0.25);
}
.form-inner-nobg{
	background: hsl(0deg 0% var(--bg-lume));
}
.form-title{
	text-align: center;
	font-weight: 600;
	margin-bottom: 1rem;
}
.user-form{
	display: grid;
	gap: 1rem;
}
.user-form-setting{
	gap: 2rem;
}
.input-label{
	display: block;
	font-weight: 600;
	font-size: var(--fs-15);
	margin-bottom: 0.75em;
}
.input-label sup{
	color: hsl(20deg 40% 50%);
	font-weight: 900;
}
.form-button{
	text-align: center;
}
.user-form input{
	font: inherit;
	color: inherit;
	padding: 0.5rem;
	border-radius: 0.5rem;
	background: hsl(0deg 0% var(--bg-lume));
	border: 1px solid hsl(0deg 0% var(--bg-lume-flip));
	display: block;
	width: 100%;
}
.form-submit{
	-webkit-appearance: none;
	appearance: none;
	padding: 0.75rem 1rem;
	border-radius: 0.75rem;
	background: hsl(150deg 50% 40%);
	color: hsl(150deg 50% 90%);
	font-weight: 600;
	font-size: inherit;
	border: 1px solid hsl(150deg 50% 20%);
	line-height: 1.12;
}
.thanks-text{
	display: grid;
	gap: 1rem;
}
.thanks-text ol{
	padding-left: 1.5rem;
}
.field-terms{
	max-height: min(10rem, 30vh);
	padding: 0.75rem;
	background: hsl(0deg 0% var(--bg-lume));
	box-shadow: 0 0 0.5rem 0 hsl(0deg 0% var(--bg-lume-flip) / 0.25);
	border-radius: 0.5rem;
	font-size: 0.85rem;
	overflow-y: auto;
}
.term-texts{
	display: grid;
	gap: 0.75em;
}
.term-texts .main-title{
	font-weight: 600;
	font-size: 1.2em;
}
.term-texts .sub-title{
	font-weight: 600;
	font-size: 1.1em;
}
.term-texts :is(ol,ul){
	padding-left: 1.5em;
}
.setting-actions{
	display: flex;
	gap: 0.75rem;
	justify-content: center;
}

.setting-actions > a, .setting-actions > button, .setting-actions form button {
    font: inherit;
    font-size: 0.85rem;
    padding: 0.75rem 1rem;
    line-height: 1;
    color: var(--_action-color, inherit);
    border-radius: 0.5em;
    border: 1px solid;
    text-decoration: none;
}

.setting-actions button{
	--_action-color: hsl(5deg 60% var(--theme-color-lume));
	-webkit-appearance: none;
	appearance: none;
	background: 0;
}