* {
    margin: 0;
    padding: 0;
}

html {
    scroll-behavior: smooth;
    -webkit-font-smoothing: antialiased;
}

body {
    background-color: #f7f5eb;
    font-family: -apple-system, BlinkMacSystemFont, Helvetica Neue, Segoe UI, Hiragino Kaku Gothic ProN, Hiragino Sans, ヒラギノ角ゴ ProN W3, Arial, メイリオ, Meiryo, sans-serif !important;
    margin: 0;
    word-wrap: break-word;
    overflow-wrap: break-word;
}

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

hr {
    height: 1px;
    border: none;
    border-top: 1px #B0B0B0 solid;
}

a {
    text-decoration: none;
    color: #0645AD;
}

a:hover {
    color: #0B0088;
    text-decoration: none;
}

h3 {
    margin-top: 2em;
    border-left: 8px solid #2759F2;
    padding-left: 8px;
}

p {
    margin-bottom: 1em;
}

table, h1, h3 {
    font-family: "Noto Serif JP", serif;
}

#page {
    max-width: min(90%, 1200px);
    margin: 0 auto;
    background: #fff;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
}

#content {
    max-width: 1170px;
}

#content::after {
    content: "";
    clear: both;
    display: table;
}

#primary {
    float: right;
    width: calc(100% - 354px);
    padding-left: 24px;
    padding-right: 0;
}

#secondary {
    float: left;
    width: 330px;
}

/* common start */
.center {
    text-align: center;
    margin: 0 auto;
}

.right {
    text-align: right;
}

.nowrap {
    white-space: nowrap;
}

.marker {
    font-weight: bold;
    padding: 3px;
    background: linear-gradient(transparent 0%, #FFFF66 0%);
}

.standard-width-table {
    width: 50%;
}

.standard-width-table td {
    padding: 8px;
}

.wide-table {
    width: 80%;
}

.wide-table td {
    padding: 8px;
}

.border-table {
    border-collapse: collapse;
    margin: 2em auto;
}

.border-table th {
    color: #222;
    border-top: 2px solid #005ab3;
}

.border-table td {
    border-bottom: 1px solid #ccc;
}

.border-table th, .border-table tr:last-child td {
    border-bottom: 2px solid #005ab3;
}

.section-title {
    font-family: "Noto Serif JP", serif;
    margin: 20px 0;
    text-align: center;
    padding: 8px 0;
    background: linear-gradient(0deg, #f9f6f0, #f9f8f6);
    border-top: 1px solid #e06d16;
    border-bottom: 1px solid #e06d16;
    font-weight: normal;
    font-size: 1.3em;
}

.article-title {
    margin: 20px 0;
    color: black;
    text-align: center;
    padding: 20px 0;
    border-bottom: 1px solid #f59c46;
    font-weight: lighter;
}

.category-title {
    margin: 0 1em;
}

/* common end */

/* header start */
header {
    box-shadow: 0 10px 10px -8px rgba(0, 0, 0, .2);
    text-align: center;
    display: inline-grid;
    width: 100%;
    font-family: "Noto Serif JP", serif;
}

header::after {
    content: "";
    display: block;
    height: 2px;
    background: linear-gradient(135deg, #e89c25, #db752f);
}

.top-title-link {
    position: relative;
    text-decoration: none;
    color: #000000;
    font-size: 32px;
}

.top-title-link::first-letter {
    font-size: 40px;
    color: #ef4f1f;
}

.top-title-link:hover {
    text-decoration: none;
    color: #000000;
}

.top-subtitle-link {
    font-size: 18px;
    color: #333;
    padding-bottom: 8px;
}

.top-subtitle-link:hover {
    text-decoration: none;
    color: #333;
}

/* header end */

/* footer start */
footer {
    background: linear-gradient(315deg, #e89c25, #e85925);
    border-top: 1px solid #b0b0b0;
    margin-top: 40px;
}

.footer-menu {
    width: 100%;
    min-height: 100px;
    margin: 0 auto;
    display: flex;
    justify-content: center;
    align-items: center;
}

.footer-link {
    display: flex;
    margin: 0 30px;
    position: relative;
    text-decoration: none;
    color: white;
    font-weight: bold;
    line-height: 1.2em;
    -webkit-transition: .8s;
    transition: .8s;
    font-family: "Noto Serif JP", serif;
}

.copyright {
    color: lightgray;
    text-align: right;
    padding: 8px 0;
    font-size: 14px;
}

/* footer end */

/* breadcrumb start */
.breadcrumbs {
    border-top: 1px solid #B0B0B0;
    border-bottom: 1px solid #B0B0B0;
    padding: 10px 0 10px 20px;
    color: #555;
    background-color: #DEF;
    margin-bottom: 8px;
}

.separator {
    display: inline-block;
    margin: 0 7px;
    vertical-align: middle
}

.inline-svg-path {
    width: .5em;
}

/* breadcrumb end */

/* sidebar layout start */
.widget {
    margin: 0 0 56px 0;
}

.widget-title {
    margin-top: 16px;
    margin-bottom: 16px;
    padding-left: 20px;
    font-size: 16px;
    position: relative;
    line-height: 1.3em;
    color: #111;
    z-index: 1;
}

.widget-title::after {
    content: "";
    background: rgba(0, 0, 0, 0.2);
    height: 2px;
    width: 100%;
    position: absolute;
    bottom: 3px;
    left: 0;
    z-index: -1;
}

.widget-title span {
    background: #fff;
    padding: 0 10px;
}

.widget-content {
    margin: 1em;
    color: #333;
}

.legend {
    background-color: #f3b32699;
    font-weight: bold;
}

.categories {
    list-style: none;
}

.categories li {
    border: 1px solid #B0B0B0;
}

.categories li:first-child {
    border-top-left-radius: 4px;
}

.categories > li {
    margin-bottom: 16px;
    border-right: 1px solid #B0B0B0;
    border-bottom: 1px solid #B0B0B0;
    border-radius: 4px;
}

.categories > li:hover {
    background-color: #E0EAF0;
}

.categories li a {
    display: block;
    padding: 6px 0 6px 1em;
}

.subcategory {
    list-style: none;
    margin: 0 0 0 15px;
}

.subcategory li {
    border-bottom: none;
    border-right: none;
    background-color: white;
}

.subcategory li {
}

.subcategory li:hover {
    background-color: #E0EAF0;
}

/* sidebar layout end */

/* navi layout start */
.toc-container {
    width: 60%;
    border: 1px solid #B0B0B0;
    background: #f5fbf0;
    margin: 1em auto;
}

.toc-title {
    width: 100%;
    font-weight: bold;
    text-align: center;
}

.toc-list {
    padding-inline-start: 40px;
    margin: 1em 0;
}

/* navi layout end */


.published-at {
    margin: 0 16px 1em 0;
    padding: 0 40px 0 0;
    text-align: right;
    color: #444;
    background: url("/clock.png") no-repeat right center;
    background-size: contain;
    background-color: rgba(255, 255, 255, 0.4);
    background-blend-mode: lighten;
    font-size: small;
}

/* ranking start */
.ranking-description {
    padding: 1em;
    line-height: 1.75em;
}

.ranking-amazon-item {
    margin: 2em 0;
    display: flex;
    width: 95%;
}

.ranking-amazon-item::after {
    content: "";
    clear: both;
    display: block;
}

.ranking-amazon-item-content {
    display: flex;
    align-items: flex-start;
    flex-direction: column;
    font-family: 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', Meiryo, sans-serif;
    width: calc(100% - 160px);
    word-break: break-all;
}

.ranking-amazon-item-image-box {
    width: 155px;
    display: inline-table;
    text-align: center;
    margin-right: 1em;
}

.ranking-amazon-item-image {
    max-width: 150px;
    max-height: 150px;
}

.ranking-amazon-item-brand {
    font-size: small;
    color: #333333;
    margin-bottom: 0.8em;
}

.ranking-amazon-item-price-new {
}

.ranking-amazon-item-price-used {
}

.good-review-100 {
    font-size: x-large;
    color: #cf0a0a;
}

.good-review-50 {
    font-size: large;
    color: #ef4200;
}

.good-review-10 {
    font-size: large;
    color: #cf0a0a;
}

.good-review-5 {
    font-weight: bold;
}

.good-review {
}

.ranking-rank {
    color: #444;
}

.amazon-item-updated-at {
    background-color: #EFEFEF;
    font-size: small;
    padding: 2px;
    color: #555;
    white-space: nowrap;
}

/* ranking end */

/* item page start */
.amazon-item {
    margin: 2em 0;
    display: block;
    width: 90%;
}

.amazon-item-content {
    display: block;
    font-family: 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', Meiryo, sans-serif;
    word-break: break-all;
}

.amazon-item-image {
    width: auto;
    height: auto;
}

.amazon-item-brand {
    font-size: small;
    color: #333333;
    margin-bottom: 0.8em;
    text-align: right;
}

.amazon-item-price-new {
    text-align: right;
}

.amazon-item-price-used {
}

.amazon-item-image-box {
    display: block;
    text-align: center;
    margin: 1em auto;
    width: 80%;
    padding-top: 400px; /* 画像の高さ */
    position: relative;
}

.ranking-amazon-item-image-box a {
    display: block;
}

.amazon-item-image-box a img {
    position: absolute;
    left: 0;
    top: 0;
    transition: all 0.5s;
    border-radius: 3px;
    box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.3);
    max-height: 400px;
}

.amazon-item-image-box input[name='img_switcher'] {
    display: none;
}

.amazon-item-image-box label {
    margin: 15px 5px 0 5px;
    border: 2px solid #ffffff;
    display: inline-block;
    cursor: pointer;
    transition: all 0.5s ease;
    opacity: 0.6;
    border-radius: 3px;
}

.amazon-item-image-box label:hover {
    opacity: 0.9;
}

.amazon-item-image-box label img {
    display: block;
    width: 48px;
    border-radius: 2px;
}

.amazon-item-image-box input[name='img_switcher']:checked + label {
    border: 2px solid #FF7043;
    opacity: 1;
}

.amazon-item-image-box input[name='img_switcher'] ~ a {
    opacity: 0;
}

.amazon-item-image-box input[name='img_switcher']:checked + label + a {
    opacity: 1;
}

.check-amazon {
    border: 2px solid #d55911;
    border-radius: 8px;
    padding: 16px 0;
    background: linear-gradient(0, #fba572, #f37f10, #fba572);
    font-size: x-large;
    width: 90%;
    margin: 1em auto;
    display: block;
    font-weight: bold;
    color: #444;
}

.check-amazon:hover {
    border: 2px solid #d55911;
    background: linear-gradient(0, #f37f10, #fba572, #f37f10);
}

.amazon-price-notice {
    background-color: #EEE;
    font-size: x-small;
    width: 50%;
    color: #444;
    margin-top: 8px;
    display: inline-block;
}

.reviews {
    padding: 8px;
}

.reviews a {
    display: block;
    margin-bottom: 4px;
}

.pickup-reviews {

}

.review-page {
    border: 1px solid rgba(0, 0, 0, .1);
    font-size: 13px;
    background-clip: padding-box;
    box-sizing: border-box;
    margin-top: 16px;
    min-height: 100px;
    position: relative;
    overflow: hidden;
    padding: 8px;
    border-radius: 4px;
}

.review-page-thumb {
    position: absolute;
    right: 0;
    top: 0;
}

.review-page-body {
    margin-right: 110px;
    word-wrap: break-word;
}

.review-page-title {
    font-size: 17px;
    margin: 0 0 2px;
    line-height: 1.3;
    max-height: 47px;
    overflow: hidden;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    font-weight: bold;
}

.review-page-title a {
    color: #333;
}

.review-page-title a:hover {
    text-decoration: underline;
    color: #333;
}

.review-page-description {
    line-height: 1.5;
    font-size: 12px;
    max-height: 72px;
    overflow: hidden;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}

/* item page end */

/* recommend item start */
.recommend-item-list {
    display: flex;
    align-content: flex-start;
    overflow: scroll;
}

.recommend-item-image-box {
    height: 110px;
}

.recommend-item {
    margin: 8px 0 8px -1px;
    border: 1px solid #CCC;
    width: 100px;
    font-size: 14px;
    padding: 8px;
    text-align: center;
}

.recommend-item-content a {
    display: block;
}

.recommend-item-content span {
    color: #ef4200;
}

.recommend-amazon-item-image {
    max-width: 100px;
    max-height: 100px;
}

/* recommend item end */

/* hamburger menu start  */
#hamburger-menu {
}

.hamburger-toggle-btn {
    display: block;
    position: fixed;
    width: 1.75rem;
    height: 1.75rem;
    top: 16px;
    left: calc(100% - 16px);
    transform: translateX(-100%);
    background-color: white;
    border-radius: 24px;
    padding: 8px;
    z-index: 30;
    border: 1px solid #777;
}

.hamburger-menu-content {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    padding: 1rem;
    opacity: 0;
    visibility: hidden;
    transition: opacity .5s, visibility .5s;
    background-color: white;
    overflow: scroll;
}

.hamburger-menu-content.show {
    opacity: 1;
    visibility: visible;
}

/* hamburger menu end  */

/* pagination start */
.page-navi {
    text-align: center;
    margin: 2em 0;
}

.page-navi a {
    background: lightgray;
    border: 1px solid #B0B0B0;
    padding: 12px;
    color: black;
    border-radius: 5px;
    margin: 1em;
}

.page-navi a:hover {
    background: linear-gradient(to right, rgba(41, 154, 11, 1) 0%, rgba(32, 178, 49, 1) 100%);
    color: white;
}

.page-navigation {
    text-align: center;
    margin: 2em 0;
}

.page-navigation a, .page-navigation span {
    font-family: 'Roboto Condensed', sans-serif;
    font-size: 1.2rem;
    display: inline-block;
    color: #666;
    background-color: #f3f0e9;
    text-decoration: none;
    text-align: center;
    line-height: 44px;
    width: 44px;
    height: 44px;
    margin: 0 6px;
    transition: .2s ease-in-out;
    white-space: nowrap;
    -webkit-border-radius: 50%;
    border-radius: 50%;
}

.page-navigation .current-item {
    background-color: #434343;
    color: white;
}

.page-navigation a:hover {
    background-color: #f5b565;
    color: #000;
}

/* pagenation end */

/* top main start */
.more-ranking-container {
    text-align: center;
    margin: 2em 0 3em 0;
}

.more-ranking {
    font-size: x-large;
    border-bottom: 1px solid blue;
}

.category-title {
    font-size: large;
    font-weight: bold;
}

/* top main end */

@media screen and (max-width: 1023px) {
    #primary {
        float: none;
        width: 100%;
        padding: 0;
    }

    #secondary {
        float: none;
        width: 100%;
    }

    .footer-menu {
        display: block;
    }

    .footer-link {
        border-bottom: 1px solid white;
        padding-bottom: 4px;
        margin: 1em;
    }
}

@media screen and (max-width: 800px) {
    #page {
        max-width: 90%
    }

    .company-summary {
        width: 90%
    }

    .toc-container {
        width: 80%;
    }

    .standard-width-table {
        width: 100%;
    }

    .wide-table {
        width: 100%;
    }

    .amazon-item-price-old {
        font-size: large;
    }

    .amazon-item-price-rate {
        font-size: large;
    }

    .amazon-item {
        margin: 1em;
    }
}

@media screen and (max-width: 500px) {
    #page {
        max-width: 95%
    }
}
