/* Reset */
*,
*::before,
*::after{
  box-sizing:border-box;
}

html{
  -webkit-text-size-adjust:100%;
}

body,
h1,h2,h3,h4,h5,h6,
p,
ul,ol,
dl,dd,
figure,
blockquote{
  margin:0;
}

ul,ol{
  padding:0;
  list-style:none;
}

img,
svg,
video,
canvas{
  display:block;
  max-width:100%;
  height:auto;
}

table{
  width:100%;
  border-collapse:collapse;
  border-spacing:0;
}

input,
textarea,
select,
button{
  font:inherit;
  color:inherit;
}

button{
  border:none;
  background:none;
  cursor:pointer;
}

a{
  color:inherit;
  text-decoration:none;
}

/* Base */
html{
  font-size:16px;
  scroll-behavior:smooth;
}

body{
  min-height:100svh;
  font-family:"Noto Sans JP",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-weight:400;
  font-size:clamp(15px,1.6vw,16px);
  line-height:1.7;
  color:var(--color-text);
  background-color:var(--color-bg);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
}

h1,h2,h3,h4,h5,h6{
  font-weight:700;
  line-height:1.4;
}

b,
strong{
  font-weight:700;
}

small{
  font-size:.875em;
}

sub,
sup{
  position:relative;
  font-size:.75em;
  line-height:0;
  vertical-align:baseline;
}

sub{
  bottom:-.25em;
}

sup{
  top:-.5em;
}

a:hover{
  opacity:.9;
}

.sp_br {
  display: none;
}

@media screen and (max-width: 767px) {
  .sp_br {
    display: inline;
  }
}

/* Utility */
.inContainer,
.u_container{
  margin-inline:auto;
}

.u_mtSm{
  margin-top:var(--space-sm);
}

.u_mtMd{
  margin-top:var(--space-md);
}

.u_mtLg{
  margin-top:var(--space-lg);
}

.u_flex{
  display:flex;
}

.u_flex_between{
  display:flex;
  justify-content:space-between;
  align-items:center;
}

.u_flex_center{
  display:flex;
  justify-content:center;
  align-items:center;
}

.u_flex_wrap{
  display:flex;
  flex-wrap:wrap;
}

.u_flex_col{
  display:flex;
  flex-direction:column;
}

.u_grid{
  display:grid;
  gap:1rem;
}

.u_textCenter{
  text-align:center;
}

.u_hidden{
  display:none !important;
}

.u_block{
  display:block;
}

@media (min-width:768px){
  .u_grid_tb2{
    grid-template-columns:repeat(2,1fr);
  }

  .u_grid_tb3{
    grid-template-columns:repeat(3,1fr);
  }
}

@media (min-width:1024px){
  .u_grid_pc2{
    grid-template-columns:repeat(2,1fr);
  }

  .u_grid_pc3{
    grid-template-columns:repeat(3,1fr);
  }
}

@media screen and (max-width:768px){
  html{
    font-size:15px;
  }

  .u_container{
    width:min(92%,1200px);
  }
}