@charset "UTF-8";

html, body, div, span, iframe, h1, h2, h3, h4, h5, h6, p, img, small, strong, sub, sup, var, b, i, dl, dt, dd, ol, ul, li, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, figcaption, figure, footer, header, nav, section, audio, video { margin:0; padding:0; border:0; font-size:100%; vertical-align:baseline; background:transparent; }
*, *::before, *::after { box-sizing:border-box; }

/****************************************/
/*	reset            										*/
/****************************************/
html { -webkit-text-size-adjust:100%; text-size-adjust:100%; }
article, figcaption, figure, footer, header, nav, section { display:block; }
h1, h2, h3, h4, h5, h6 { font-weight:normal; }
ul, ol { list-style:none; }
table { border-collapse:collapse; border-spacing:0; }
a { text-decoration:none; }
input, select { vertical-align:middle; }
img { display:block; max-width:100%; height:auto; }


/****************************************/
/*	color: 		 													*/
/****************************************/
:root {
  --color-white:255,255,255;
  --color-black:33,33,33;
  --color-palegray:217,217,217;
  --color-gray:80,80,90;/*暫定*/
  --color-midgray:105,105,110;/*暫定*/
  --color-darkgray:150,150,150;
  --color-lightbluegray:238,243,249;
  --color-primary-blue:1,94,208;
  --color-primary-green:43,181,114;
}

/****************************************/
/*	common		 													*/
/****************************************/
html { font-size:100%; -webkit-text-size-adjust:100%; text-size-adjust:100%; scroll-behavior:smooth; scroll-padding-top:5rem; }
body { line-height:1.7; color:rgb(var(--color-black)); font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", "Hiragino Sans", "Noto Sans JP", "Yu Gothic UI", Roboto, "Helvetica Neue", Arial, sans-serif; font-size:clamp(0.875rem, 0.85rem + 0.4vw, 1.125rem); font-kerning:normal; font-feature-settings:"palt"; font-variant-east-asian:proportional-width; letter-spacing:0.02em; background:rgb(var(--color-white)); }

/****************************************/
/*	custom															*/
/****************************************/
main { position:relative; }
hr { margin:0 0 2rem; padding:0; border:0; }
a { color:rgba(var(--color-primary-blue),1); text-decoration:none; }
sup { position:relative; top:0.1em; font-size:0.7rem; vertical-align:top; }
sub { position:relative; top:0.7em; font-size:0.7rem; vertical-align:top; }
:where(a, button, [role="button"], input, textarea, select):focus-visible{ outline:2px solid rgb(var(--color-primary-navy)); outline-offset:3px; border-radius:4px; }

.wrap { position:relative; overflow-x:hidden; width:100%; }
.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;font:inherit;line-height:inherit;color:inherit;background:transparent;opacity:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}

/****************************************/
/*	section															*/
/****************************************/
.s { margin-block-end:5em; }
.s-inner { max-width:1240px; width:88%; margin-inline:auto; }
@media (max-width:768px) {
.s { margin-block-end:4em; }
}

/****************************************/
/*	.btn       													*/
/****************************************/
.s-btns { padding-top:2.5em; text-align:center; }
.s-btn { display:inline-flex; justify-content:center; align-items:center; position:relative; z-index:0; overflow:hidden; width:100%; max-width:300px; margin-inline:0.5em; padding:0.5rem 1rem; border:rgb(var(--color-black)) 2px solid; border-radius:3em; color:rgb(var(--color-white)); font-size:clamp(0.85rem, 3vw, 1.0rem); background:rgb(var(--color-black)); transition:color .4s ease; }
.s-btn:visited { color:rgb(var(--color-white)); transition:color .4s ease; }
.s-btn::after{ content:''; position:absolute; inset:0; z-index:-1; background:rgb(var(--color-white)); transform:translateX(-100%); transition:transform .4s ease; }
@media (hover: hover) and (pointer: fine){
  .s-btn:hover { color:rgb(var(--color-black)) !important; }
  .s-btn:hover::after { transform:translateX(0); }
}

/****************************************/
/*	function														*/
/****************************************/
.serif{ font-family:serif; }
.pc{ display:none; }
.sp{ display:inline; }
.d-ib { display:inline-block; }
.nwp { white-space:nowrap; }
@media (min-width:768px) {
  .pc { display:inline; }
  .sp { display:none; }
}