* { box-sizing: border-box; }
body {
    margin: 0;
    font-family: "Hiragino Kaku Gothic ProN", "Yu Gothic", "Meiryo", sans-serif;
    color: #222;
    background: #f7f7f7;
    line-height: 1.6;
}
a { color: #0f5ea8; text-decoration: none; }
a:hover { text-decoration: underline; }
.container { width: min(1180px, 94%); margin: 0 auto; }
.site-header { background: #fff; border-bottom: 1px solid #e6e6e6; position: sticky; top: 0; z-index: 10; }
.header-inner { display: flex; align-items: center; justify-content: space-between; min-height: 64px; gap: 16px; }
.logo { font-weight: 700; font-size: 1.2rem; color: #111; }
.main-nav { display: flex; gap: 16px; }
.main-nav a { color: #333; font-size: 0.95rem; padding: 6px 8px; border-radius: 6px; }
.main-nav a.active, .main-nav a:hover { background: #eef5fc; text-decoration: none; }
.menu-toggle { display: none; border: 1px solid #ddd; background: #fff; padding: 6px 10px; border-radius: 6px; }
.site-main { min-height: 70vh; padding: 18px 0 40px; }
.section-card, .shop-card, .info-card {
    background: #fff;
    border: 1px solid #e7e7e7;
    border-radius: 10px;
    padding: 14px;
    margin-bottom: 12px;
}
.section-title { margin: 0 0 10px; font-size: 1.15rem; border-left: 4px solid #0f5ea8; padding-left: 8px; }
.meta { color: #6e6e6e; font-size: 0.88rem; }
.tag-list { display: flex; flex-wrap: wrap; gap: 8px; margin: 8px 0; }
.tag { display: inline-block; background: #eef5fc; color: #154675; padding: 4px 10px; border-radius: 999px; font-size: 0.84rem; }
.shop-list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.shop-card h3 { margin: 0 0 6px; font-size: 1.03rem; }
.shop-thumb { width: 100%; aspect-ratio: 4 / 3; border-radius: 8px; object-fit: cover; background: #efefef; }
.ad-card {
    background: #fff;
    border: 1px solid #e7e7e7;
    border-radius: 10px;
    padding: 10px;
}
.ad-card .meta { margin: 0 0 6px; }
.ad-slot {
    display: block;
    min-height: 100px;
}
.site-footer { background: #fff; border-top: 1px solid #e6e6e6; padding: 20px 0; }
.footer-links { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; }
.copyright { text-align: center; color: #666; font-size: 0.85rem; margin-top: 8px; }
.breadcrumb { margin: 0 0 12px; font-size: 0.9rem; color: #666; }
.grid-2 { display: grid; grid-template-columns: 2fr 1fr; gap: 14px; }
@media (max-width: 900px) {
    .shop-list { grid-template-columns: repeat(2, 1fr); }
    .grid-2 { grid-template-columns: 1fr; }
}
@media (max-width: 720px) {
    .menu-toggle { display: inline-block; }
    .main-nav { display: none; position: absolute; top: 64px; left: 0; right: 0; background: #fff; border-bottom: 1px solid #ececec; padding: 10px 3%; flex-direction: column; }
    .main-nav.open { display: flex; }
    .shop-list { grid-template-columns: 1fr; }
    .section-title { font-size: 1.03rem; }
}
