/* CFKS product navigation: keyboard, touch and mouse all use native details. */
.site-products { position: relative; }
.site-products > summary, .site-mobile-menu > summary { list-style: none; cursor: pointer; }
.site-products > summary::-webkit-details-marker, .site-mobile-menu > summary::-webkit-details-marker { display: none; }
.site-products > summary::after { content: '⌄'; display: inline-block; margin-left: .4rem; font-size: 1rem; transition: transform .2s; }
.site-products[open] > summary::after { transform: rotate(180deg); }
.site-products > summary:focus-visible, .site-mobile-menu > summary:focus-visible, .site-products-panel a:focus-visible, .site-mobile-panel a:focus-visible { outline: 2px solid #1F4D3A; outline-offset: 3px; }
.site-products-panel { position: absolute; top: calc(100% + 1.4rem); left: 50%; transform: translateX(-50%); min-width: 390px; background: #fff; color: #1A1A1A; padding: 1.3rem; border: 1px solid #e6e3dc; border-radius: .45rem; box-shadow: 0 16px 40px rgba(0,0,0,.14); display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .3rem 1rem; }
.site-products-panel::before { content: ''; position: absolute; height: 1.5rem; width: 100%; top: -1.4rem; left: 0; }
.site-products-panel a { display: block; padding: .7rem .6rem; border-radius: .3rem; font-size: .9rem; line-height: 1.3; }
.site-products-panel a:hover { background: #F5F1E8; color: #1F4D3A; }
.site-mobile-menu { position: relative; }
.site-mobile-panel { position: absolute; top: calc(100% + 1.4rem); right: 0; width: min(320px,calc(100vw - 2rem)); max-height: calc(100vh - 6rem); overflow-y: auto; background: white; color: #1A1A1A; padding: 1rem; box-shadow: 0 16px 40px rgba(0,0,0,.15); border: 1px solid #e6e3dc; border-radius: .45rem; }
.site-mobile-panel a { display: block; padding: .7rem .55rem; border-bottom: 1px solid #eee; font-size: .95rem; }
.site-mobile-panel .site-mobile-sub a { padding-left: 1.1rem; font-size: .875rem; }
.site-mobile-panel a:hover { background: #F5F1E8; }
.catalog-card { display: block; background: white; border: 1px solid #ece8e0; overflow: hidden; border-radius: .7rem; transition: box-shadow .2s, transform .2s; }
.catalog-card:hover { box-shadow: 0 14px 30px rgba(16,37,29,.1); transform: translateY(-3px); }
.catalog-card:focus-visible { outline: 2px solid #1F4D3A; outline-offset: 3px; }
.catalog-card img { width: 100%; height: 255px; object-fit: cover; }
@media (max-width: 639px) { .catalog-card img { height: 210px; } }
html { scroll-padding-top: 6rem; }
