.jc-shop-intro {
 margin: 8px 0 40px;
 padding: 12px 0 36px;
 border-bottom: 1px solid var(--line);
 text-align: center;
}
.jc-shop-intro h1 {
 margin: 0 0 8px;
 color: var(--wine);
 font-size: clamp(28px, 3vw, 38px);
 line-height: 1.5;
 letter-spacing: .08em;
}
.jc-shop-subtitle { margin: 0; font-size: 12px; letter-spacing: .12em; }
.jc-shop-lead { margin: 24px 0 30px; color: var(--muted); font-size: 14px; line-height: 2; }
.jc-shop-categories { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.jc-shop-categories a {
 display: flex;
 flex-direction: column;
 justify-content: center;
 min-height: 94px;
 padding: 16px 10px;
 border: 1px solid var(--line);
 color: var(--wine);
 background: #fffdf9;
 text-decoration: none;
}
.jc-shop-categories a:hover { background: #efe8e1; border-color: var(--wine); }
.jc-shop-category-name { font-size: 15px; letter-spacing: .06em; }
.jc-shop-category-caption { margin-top: 5px; font-size: 11px; color: var(--muted); }
@media (max-width: 768px) {
 .jc-shop-intro { margin-bottom: 28px; padding-top: 4px; padding-bottom: 28px; }
 .jc-shop-lead { font-size: 13px; margin: 20px 0 24px; }
 .jc-shop-categories { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
 .jc-shop-categories a { min-height: 88px; padding: 14px 6px; }
 .jc-shop-category-name { font-size: 13px; letter-spacing: .03em; }
}

.jc-shop-categories-three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 768px) {
 .jc-shop-categories-three { grid-template-columns: 1fr; }
 .jc-shop-categories-three a { min-height: 70px; }
}

.jc-shop-categories-two {
 grid-template-columns: repeat(2, minmax(0, 1fr));
 max-width: 780px;
 margin-inline: auto;
}
