@charset "utf-8";
/* reset.css | 2025.11.03 改修 */

/* --- 基本リセット --- */
blockquote,q { quotes: none; }
a,abbr,acronym,address,applet,article,aside,audio,b,big,blockquote,body,canvas,caption,center,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,u,ul,var,video { background: transparent; border: 0; font-style: normal; font-weight: 400; margin: 0; padding: 0; vertical-align: baseline; }
h1,h2,h3,h4,h5,h6 { font-size: 1em; }
article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section { display: block; }
html { font-size: 62.5%; overflow-y: scroll; }
blockquote,q { quotes: none; }
blockquote:after,blockquote:before,q:after,q:before { content: ''; content: none; }
caption,th { text-align: left; }
a:focus { outline: 0; }
ins { text-decoration: none; }
ins,mark { background-color: #ff9; color: #000; }
mark { font-style: italic; font-weight: 700; }
del { text-decoration: line-through; }
abbr[title],dfn[title] { border-bottom: 1px dotted #000; cursor: help; }
hr { border-top: 1px solid #ccc; display: block; height: 1px; margin: 1em 0; }
a,hr { border: 0; padding: 0; }
a { background: transparent; font-style: normal; font-weight: 400; margin: 0; vertical-align: baseline; }
img { font-size: 0; height: auto; line-height: 0; max-width: 100%; vertical-align: middle; }
sup { vertical-align: super; }
sub { vertical-align: sub; }
main { display: block; }
* html .clearfix,* html .section { height: 1px; }
strong, strong span { font-weight: bold!important; }
del { text-decoration: line-through!important; }
blockquote, q { background: transparent; border: 0; font-style: normal; font-weight: normal; margin: 0; padding: 0; quotes: none; vertical-align: baseline; }
li, ol, ul, dl, dt, dd { list-style: none; list-style-type: none; margin: 0; padding: 0; }

/* --- Form --- */
input,textarea { margin: 0; padding: 0; }
button,input,select { vertical-align: middle; }
select { text-overflow: ""; }
button,input,select,textarea { border: 0; border-radius: 0; }
button,input,option,select,textarea { appearance: none; moz-appearance: none; webkit-appearance: none; }
button,input[type=checkbox],input[type=email],input[type=password],input[type=radio],input[type=tel],input[type=text],select,textarea { background: transparent; outline: 0; }
button,input[type=email],input[type=password],input[type=tel],input[type=text],select,textarea { box-sizing: border-box; moz-box-sizing: border-box; webkit-box-sizing: border-box; width: auto; }
button,input[type=button],input[type=reset],input[type=submit],label,select { cursor: pointer; }
input[type=email],input[type=password],input[type=tel],input[type=text] { vertical-align: middle; }
label { cursor: pointer; display: inline-block; position: relative; }
button::-ms-expand,select::-ms-expand { display: none; }
button,input[type=button],input[type=reset],input[type=submit] { appearance: button; webkit-appearance: button; webkit-box-sizing: content-box; }
button::-webkit-search-decoration,input[type="button"]::-webkit-search-decoration,input[type="reset"]::-webkit-search-decoration,input[type="submit"]::-webkit-search-decoration { display: none; }
button::focus,form input[type="button"]::focus,form input[type="reset"]::focus,form input[type="submit"]::focus { outline-offset: -2px; }
input::placeholder,textarea::placeholder { color: #ccc!important; }
input:-webkit-autofill{ box-shadow: 0 0 0px 1000px #fff inset; }

/* --- Text Align --- */
.tl { text-align: left !important; }
.tc { text-align: center !important; }
.tr { text-align: right !important; }
.tj { text-align: justify !important; }
@media (width <= 1100px) {
	.tl-t { text-align: left !important; }
	.tc-t { text-align: center !important; }
	.tr-t { text-align: right !important; }
	.tj-t { text-align: justify !important; }
}
@media (width <= 767px) {
	.tl-m { text-align: left !important; }
	.tc-m { text-align: center !important; }
	.tr-m { text-align: right !important; }
	.tj-m { text-align: justify !important; }
}
@media (width <= 500px) {
	.tl-s { text-align: left !important; }
	.tc-s { text-align: center !important; }
	.tr-s { text-align: right !important; }
	.tj-s { text-align: justify !important; }
}

/* --- Display Helpers --- */
.inb { display: inline-block !important; }
.inl { display: inline !important; }
.dib { display: inline-block !important; }
.db { display: block !important; }
.dn { display: none !important; }

/* --- Visibility --- */
.vh { visibility: hidden !important; }
.vv { visibility: visible !important; }

/* --- Font Weight / Decoration --- */
.bold, .bold li, .bold span { font-weight: bold !important; }
.normal, .normal span { font-weight: normal !important; }
.underline { text-decoration: underline !important; }
.linethrough { text-decoration: line-through !important; }

/* --- Tel Link（PCでは通常の文字扱い） --- */
a.tel { cursor: default; text-decoration: none; }
a.tel:hover { color: inherit; }

/* --- Spacing Utilities（既存踏襲） --- */
.pt0 { padding-top: 0 !important; }
.pb0 { padding-bottom: 0 !important; }
.pl0 { padding-left: 0 !important; }
.pr0 { padding-right: 0 !important; }
.mt0 { margin-top: 0 !important; }
.mb0 { margin-bottom: 0 !important; }
.ml0 { margin-left: 0 !important; }
.mr0 { margin-right: 0 !important; }

/* よく使う10〜100px単位（詳細は必要に応じ追加） */
.pt10 { padding-top: 10px !important; }
.pb10 { padding-bottom: 10px !important; }
.mt10 { margin-top: 10px !important; }
.mb10 { margin-bottom: 10px !important; }
.pt20 { padding-top: 20px !important; }
.pb20 { padding-bottom: 20px !important; }
.mt20 { margin-top: 20px !important; }
.mb20 { margin-bottom: 20px !important; }
.pt30 { padding-top: 30px !important; }
.pb30 { padding-bottom: 30px !important; }
.mt30 { margin-top: 30px !important; }
.mb30 { margin-bottom: 30px !important; }
.pt40 { padding-top: 40px !important; }
.pb40 { padding-bottom: 40px !important; }
.mt40 { margin-top: 40px !important; }
.mb40 { margin-bottom: 40px !important; }
.pt50 { padding-top: 50px !important; }
.pb50 { padding-bottom: 50px !important; }
.mt50 { margin-top: 50px !important; }
.mb50 { margin-bottom: 50px !important; }
.pt60 { padding-top: 60px !important; }
.pb60 { padding-bottom: 60px !important; }
.mt60 { margin-top: 60px !important; }
.mb60 { margin-bottom: 60px !important; }
.pt70 { padding-top: 70px !important; }
.pb70 { padding-bottom: 70px !important; }
.mt70 { margin-top: 70px !important; }
.mb70 { margin-bottom: 70px !important; }
.pt80 { padding-top: 80px !important; }
.pb80 { padding-bottom: 80px !important; }
.mt80 { margin-top: 80px !important; }
.mb80 { margin-bottom: 80px !important; }
.pt90 { padding-top: 90px !important; }
.pb90 { padding-bottom: 90px !important; }
.mt90 { margin-top: 90px !important; }
.mb90 { margin-bottom: 90px !important; }
.pt100 { padding-top: 100px !important; }
.pb100 { padding-bottom: 100px !important; }
.mt100 { margin-top: 100px !important; }
.mb100 { margin-bottom: 100px !important; }

/* --- Text Overflow --- */
.ellipsis { white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; }

/* --- 表示・非表示（レスポンシブ対応） --- */
.show { display: block !important; }
.hide { display: none !important; }
@media (width <= 1100px) {
	.show-t { display: block !important; }
	.hide-t { display: none !important; }
}
@media (width <= 767px) {
	.show-m { display: block !important; }
	.hide-m { display: none !important; }
}
@media (width <= 500px) {
	.show-s { display: block !important; }
	.show-s-inb { display: inline-block !important; }
	.show-s-inl { display: inline !important; }
	.hide-s { display: none !important; }
}