/* CSS Reset */
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed, 
figure, figcaption, footer, header, hgroup, 
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
    margin: 0;
    padding: 0;
    border: 0;
    font-size: 100%;
    font: inherit;
    vertical-align: baseline;
}

/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure, 
footer, header, hgroup, menu, nav, section {
    display: block;
}

body {
    line-height: 1;
}

ol, ul {
    list-style: none;
}

blockquote, q {
    quotes: none;
}

blockquote:before, blockquote:after,
q:before, q:after {
    content: '';
    content: none;
}

table {
    border-collapse: collapse;
    border-spacing: 0;
}

/* COMMON */

body {
    font-size: 16px;
    line-height: 1.75;
    font-family:sans-serif;
    color: #333; 
    background-color: #fff; 
    max-width: 100%;
    width: 100%;
}

a {
    color: #007BFF; 
    text-decoration: underline;
    outline: none;  
}

a:focus, a:hover {
    color: #0056b3;
}

img {
    max-width: 100%;
    height: auto;
}

button, input, select, textarea {
    font-family: inherit;
    font-size: 100%;
    line-height: 1;
    margin: 0;
    outline: 2px solid #ffaa00;
    outline-offset: 2px;
}

/* TEXT */
h1{
    font-size:32px;
    font-weight:bold;
    margin-bottom:40px;
}

h2{
    font-size:32px;
    font-weight:bold;
    margin-bottom:40px;
    text-align:center;
}

h2.header-h2{
    font-family:serif;
    font-weight:bold;
    margin-bottom:40px;
    text-align:center;
}

h3{
    font-family:serif;
    font-size:32px;
    font-weight:bold;
    border-bottom:1px solid #333;
    padding-bottom:8px;
    margin-bottom:40px;
}

h4{
    font-family:serif;
    font-size:18px;
    font-weight:bold;
    border-bottom:1px solid #4BA087;
    padding:4px 16px;
    margin-bottom:24px;
}

h5{
    font-family:serif;
    font-size:18px;
    font-weight:bold;
    margin-bottom:16px;
    position:relative;
    padding-left:24px;
}

h5:before{
    content:"";
    width:18px;
    height:18px;
    display:block;
    background:#4BA087;
    position:absolute;
    top:8px;
    left:0;
}

#media h5{
    font-family:sans-serif;
    font-size:16px;
    font-weight:bold;
    line-height:1.5;
    margin-bottom:8px;
    position:relative;
    padding-left:0;
    color:#AA1F39;
}

#media h5 span{
    display:block;
    font-size:12px;
}

#media h5:before{
    display:none;
}

h6{
    font-family:serif;
    font-size:24px;
    font-weight:bold;
    text-align:center;
    border-bottom:1px solid #333;
    padding-bottom:8px;
    margin-bottom:0px;
}

h7{
    font-family:serif;
    font-size:18px;
    font-weight:bold;
    margin-bottom:24px;
}

p{
    margin-bottom:24px;
}

div.introduction p{
    font-family:serif;
}

p.maker span{
    font-family:serif;
    display:block;
    color:#4BA087;
}

p.message{
    font-family:serif;
    font-size:20px;
    font-weight:bold;
    letter-spacing:2px;
    line-height:2;
    margin-bottom:24px;
}

p.name span{
    margin:0 16px;
    font-size:20px;
    font-weight:bold;
}

#media p{
    font-size:14px;
    line-height:1.5;
    margin-bottom:16px;
}

p.copyright{
    font-family:serif;
    font-size:12px;
text-align:center;
}

/* STRUCTURE */
main {
    width: 100%;
    max-width: 1024px;
    box-sizing: border-box;
    margin: 0 auto;
    padding: 16px;
}

section{
    margin:80px 0;
}

.container {
    display: flex;
    flex-wrap: wrap;
    gap: 16px; /* カラム間の間隔 */
    margin-bottom: 40px;
}

.column {
    flex: 1 1 100%; /* デフォルトで1カラムレイアウト */
    padding: 16px;
    box-sizing: border-box;
}


/* 3カラムレイアウト用 */
.five-columns .column {
    flex: 1 1 calc(50% - 16px); /* 各カラムを33.33%幅にし、間隔を考慮 */
}



.item__large,.item__small{
    flex: 1 1 100%;
}

ul{

}

ul li{
    font-size:14px;
    line-height:1.5;
    border-bottom:1px dotted #999;
    padding-bottom:8px;
    margin-bottom:8px;
    list-style:inside;
}

.dl {
    display: block; /* デフォルトは block */
}

dt,
dd {
    display: inline-block;
    vertical-align: top;
}

dt {
    width: 30%; /* 用語部分の幅を調整 */
    font-weight: bold;
}

dd {
    width: 70%; /* 説明部分の幅を調整 */
}

/* 必要に応じて微調整 */
dl dt::after,
dl dd::after {
    content: '';
    display: table;
    clear: both;
}

div.facility{
    width: 100%;
    height:auto;
    display:block;
    box-sizing:border-box;
    padding:16px;
    background:#FBF4E6;
}

@media screen and (min-width: 768px) {

    /* 2カラムレイアウト用 */
    .two-columns .column {
        flex: 1 1 calc(50% - 16px); /* 各カラムを2分割して表示 */
    }

    /* 3カラムレイアウト用 */
    .three-columns .column {
        flex: 1 1 calc(33.33% - 16px); /* 各カラムを33.33%幅にし、間隔を考慮 */
    }

    /* 6カラムレイアウト用 */
    .five-columns .column {
        flex: 1 1 calc(20% - 16px); /* 各カラムを33.33%幅にし、間隔を考慮 */
    }

    .item__large {
        flex: 2; /* 2/3の幅 */
        padding: 16px;
        box-sizing: border-box;
    }
    
    .item__small {
        flex: 1; /* 1/3の幅 */
        padding: 16px;
        box-sizing: border-box;
    }
    

}
