/* ==========================================================================
   BASE STYLES - リセット、基本設定、タイポグラフィ
   ========================================================================== */

/* Reset */
html, body, div, p, a, img, strong, ol, ul, li, table, tbody, thead, tr, th, td, article, header, section {
    margin: 0;
    padding: 0;
    border: 0;
    font-size: 100%;
    font: inherit;
    vertical-align: baseline;
}

article, header, section {
    display: block;
}

body {
    line-height: 1;
}

ol, ul {
    list-style: none;
}

table {
    border-collapse: collapse;
    border-spacing: 0;
}

body {
    -webkit-text-size-adjust: none;
}

/* Box Model */
*, *:before, *:after {
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
}

/* Basic Settings */
@-ms-viewport {
    width: device-width;
}

body {
    -ms-overflow-style: scrollbar;
    background: #ffdda8;
}

@media screen and (max-width: 480px) {
    html, body {
        min-width: 320px;
    }
}

/* Typography */
html {
    font-size: 14pt;
    font: 100%/1.8 'Noto Serif JP', '筑紫Aオールド明朝', 'さわらび明朝', '游明朝', 'Osaka';
}

@media screen and (max-width: 1680px) {
    html {
        font-size: 12pt;
    }
}

@media screen and (max-width: 1280px) {
    html {
        font-size: 11pt;
        line-height: 1.5;
    }
}

@media screen and (max-width: 500px) {
    html {
        font-size: 11pt;
        line-height: 1.5!important;
    }
}

@media screen and (max-width: 360px) {
    html {
        font-size: 10pt;
    }
}

body {
    color: #212931;
    font-family: "メイリオ", Meiryo, sans-serif;
    font-weight: 100;
    font-size: 1rem;
    line-height: 2;
}

/* Links */
a {
    -moz-transition: color 0.2s ease-in-out, border-color 0.2s ease-in-out;
    -webkit-transition: color 0.2s ease-in-out, border-color 0.2s ease-in-out;
    -ms-transition: color 0.2s ease-in-out, border-color 0.2s ease-in-out;
    transition: color 0.2s ease-in-out, border-color 0.2s ease-in-out;
    border-bottom: dotted 1px;
    text-decoration: none;
    color: #212931;
    border-bottom-color: rgba(33, 41, 49, 0.5);
}

a:hover {
    border-bottom-color: transparent;
    color: #18bfef;
}



strong2 {
    font-weight: 600;
}

p {
    text-align: justify;
    margin: 0 0 1% 0;
    padding-left: 15px;
}

@media screen and (max-width: 500px) {
    p {
        padding: 0;
    }
}

/* Headings */
h7 {
    margin: 50px 0 20px 0;
    padding: 15px 20px;
    background: #532a14;
    border: 2px solid #532a14;
    border-radius: 20px;
    font-weight: bold;
    display: block;
    font-size: 110%;
    color: #ffffdd;
    position: relative;
    box-shadow: 0 8px 20px rgba(83, 42, 20, 0.2);
    text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.3);
}

h7::before {
    position: absolute;
    left: -10px;
    top: 50%;
    transform: translateY(-50%);
    background: #ffffdd;
    border-radius: 50%;
    padding: 8px;
    box-shadow: 0 4px 12px rgba(83, 42, 20, 0.2);
    font-size: 1.2rem;
}

@media screen and (max-width: 768px) {
    h7 {
        margin: 30px 0 15px 0;
        padding: 12px 15px;
        font-size: 105%;
    }
    
    h7::before {
        left: -8px;
        padding: 6px;
        font-size: 1rem;
    }
}

/* Lists */
ol {
    list-style: decimal;
    margin: 0 0 2rem 0;
    padding-left: 2rem;
}

ol li {
    padding-left: 0.25rem;
}

ul {
    list-style: square;
    margin: 0 0 2rem 0;
    padding-left: 2rem;
}

ul.tsume {
    list-style: square;
    padding-left: 2rem;
}

/* Utility Classes */
.align-center {
    text-align: center;
}

.fwb {
    font-weight: bold;
}

.clear {
    clear: both;
}

.red {
    font-weight: bold !important;
    color: red;
}