.partner-directory{padding:38px 0 8px;text-align:left;border-top:1px solid var(--line);margin-top:38px}
.partner-directory>h2{font-size:30px;margin-bottom:26px}
.shop-card{height:100%;display:flex;flex-direction:column;overflow:hidden;background:var(--paper);border:1px solid var(--line);border-radius:12px}
.shop-image-button{display:block;width:100%;padding:0;border:0;background:#e9eddc;overflow:hidden}
.shop-image-button img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .25s}
.shop-image-button:hover img{transform:scale(1.04)}
.shop-card-body{display:flex;flex-direction:column;flex:1;padding:18px 16px}
.shop-card h3{font-size:18px;line-height:1.6;margin-bottom:12px}
.shop-excerpt{font-size:14px;color:var(--muted);line-height:1.85;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.shop-open{margin-top:auto;align-self:flex-start;border:0;border-bottom:1px solid var(--ink);padding:5px 0;background:none;color:var(--ink);font-size:14px;font-weight:600}
.shop-modal .modal-content{background:var(--paper);border:1px solid var(--line);border-radius:16px;overflow:hidden}
.shop-modal .modal-header{background:var(--cream);border-bottom:1px solid var(--line);padding:18px 24px;flex-shrink:0}
.shop-modal .modal-title{font-size:24px;margin:0;line-height:1.5}
.shop-modal .btn-close{flex-shrink:0;padding:12px;margin-left:12px}
.shop-modal .modal-body{padding:28px;text-align:left;overscroll-behavior:contain}
.shop-description h3{font-size:21px;margin-bottom:18px}
.shop-description p{line-height:2;font-size:16px;overflow-wrap:anywhere}
.shop-gallery{position:relative;min-width:0;border-radius:9px;overflow:hidden;background:#e9eddc}
.shop-gallery:not(.slick-initialized)>a:not(:first-child){display:none}
.shop-gallery>a,.shop-gallery .slick-slide{display:block;aspect-ratio:4/3}
.shop-gallery img{width:100%;height:100%;object-fit:cover;object-position:center center;display:block}
.shop-gallery .slick-list{padding:0!important}
.shop-gallery-prev,.shop-gallery-next{position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:38px;height:38px;border:1px solid var(--line);border-radius:50%;background:rgba(255,254,247,.94);color:var(--ink);font-size:23px;line-height:1;display:flex;align-items:center;justify-content:center}
.shop-gallery-prev{left:12px}.shop-gallery-next{right:12px}
.shop-gallery-prev:hover,.shop-gallery-next:hover{background:var(--yellow)}
.shop-contact{border-top:1px solid var(--line);padding-top:20px;margin-top:24px}
.shop-contact dt{font-size:12px;color:var(--muted);margin-bottom:4px}.shop-contact dd{font-size:15px;margin-bottom:14px}
.shop-actions{display:flex;flex-wrap:wrap;gap:12px}.shop-actions .button{padding:12px 18px}
.shop-video{margin-top:30px;border-top:1px solid var(--line);padding-top:24px}.shop-video h3{font-size:21px}.shop-video .ratio{max-width:900px;margin:16px auto;background:#e9eddc}.shop-video iframe{border:0}.shop-video>a{font-size:13px;text-decoration:underline}
@media(min-width:768px) and (max-width:991px){.shop-card-body{padding:14px 10px}.shop-card h3{font-size:16px}.shop-excerpt{font-size:13px}}
@media(max-width:575px){.partner-directory>h2{font-size:26px}.shop-modal .modal-content{border-radius:0;border:0}.shop-modal .modal-header{padding:14px 18px}.shop-modal .modal-title{font-size:20px}.shop-modal .modal-body{padding:20px}.shop-card-body{padding:20px}.shop-card h3{font-size:20px}}
@media(prefers-reduced-motion:reduce){.shop-image-button img{transition:none}}
