.fairs-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 28px; margin-top: 60px; margin-bottom: 80px; }
.fair-card { display: flex; flex-direction: column; min-width: 0; background: #fff; border: 1px solid #e5e1dd; }
.fair-card-image { display: block; aspect-ratio: 4/3; overflow: hidden; background: #eae7e3; }
.fair-card-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s; }
.fair-card:hover .fair-card-image img { transform: scale(1.025); }
.fair-card-copy { display: flex; flex-direction: column; flex: 1; padding: 25px; }
.fair-card-meta { display: flex; flex-wrap: wrap; gap: 14px; color: #b75b22; font-size: 12px; }
.fair-card h2 { font-size: 21px; font-weight: 600; line-height: 1.45; margin: 13px 0 15px; color: #282828; }
.fair-card h2 a:hover { color: #bd5e23; }
.fair-card p { color: #74706b; font-size: 14px; line-height: 1.85; margin-bottom: 24px; }
.fair-card-more { display: inline-flex; align-items: center; justify-content: space-between; align-self: flex-start; gap: 30px; padding: 12px 18px; margin-top: auto; background: #f48137; color: #fff; font-size: 13px; font-weight: 600; transition: background .2s; }
.fair-card-more:hover { background: #252729; }
.fair-card a:focus-visible { outline: 2px solid #b95518; outline-offset: 4px; }
@media (max-width: 1139px) { .fairs-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 639px) { .fairs-grid { grid-template-columns: minmax(0,1fr); margin-top: 35px; gap: 24px; } }

.fair-detail-prose { max-width: 1000px; padding-top: 60px; padding-bottom: 30px; color: #505050; font-size: 16px; line-height: 1.95; }
.fair-detail-prose p+p { margin-top: 20px; }
.fair-detail-gallery { padding-top: 25px; padding-bottom: 80px; }
.fair-detail-gallery h2 { color: #bf6025; font-size: 28px; font-weight: 600; margin-bottom: 26px; }
.fair-detail-gallery-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 22px; }
.fair-detail-gallery-grid a { display: block; aspect-ratio: 4/3; overflow: hidden; background: #e6e3de; }
.fair-detail-gallery-grid img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s; }
.fair-detail-gallery-grid a:hover img { transform: scale(1.035); }
.fair-detail-gallery-grid a:focus-visible { outline: 2px solid #f48137; outline-offset: 4px; }
@media (max-width: 767px) { .fair-detail-gallery-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; } }
@media (max-width: 479px) { .fair-detail-gallery-grid { grid-template-columns: minmax(0,1fr); } }
