* {
 box-sizing: border-box;
}
body {
 margin: 0;
 padding: 0;
 background-color: #fff;
 overflow-wrap: anywhere;
 word-break: normal;
 line-break: strict;
 font-family: sans-serif;
}
section {
 max-width: 960px;
 margin: 0 auto;
 box-sizing: content-box;
 padding: 1rem;
}

header {
 width: 100%;
 padding: 30px 4% 10px;
 background-color: #ddd;
}
footer {
 width: 100%;
 padding: 30px;
 background-color: #ddd;
 text-align: center;
 margin: 20px 0 0 0;
}
h1 {
 margin: 0; padding:0;
 font-size: 20px;
}

h1 a {
 text-decoration: none;
 color: #000;
}

.section_title {
 padding: 5px;
 margin: 0 0 5px 0;
 background: linear-gradient(transparent, #aaaa7f);
}

h2 {
 margin: 0; padding:0;
 font-size: 16px;
}

.container {
 display: grid;
 grid-template-columns: repeat(auto-fit, minmax(min(240px, 100%), 1fr));
 gap: 1rem;
 justify-content: center;
}

.card {
 padding: 15px;
 border: 1px solid #ccc;
 text-align: center;
 border-radius: 5px;
 box-shadow: 5px 5px 5px 0px rgba(0, 0, 0, 0.50)
}

.card_logo {
 font-size: 3em;
 object-fit: cover;
}

.card_img {
 display: block;
 width: 100%;
 object-fit: cover;	
}
.card_img_mini {
 //display: block;
 width: 4em;
 object-fit: cover;
 margin: auto;
}

.card_img_pc { display: block; width: 100%; object-fit: cover; }
.card_img_sp { display: none; }
@media only screen and (max-width : 767px){
 .card_img_pc { display: none; }
 .card_img_sp { display: block; width: 100%; object-fit: cover; }
}

.force_left_alignment {
 text-align: left !important;
}
