.lookbook-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(18px, 3vw, 42px); }
.lookbook-card__link { display: block; color: inherit; text-decoration: none; }
.lookbook-card__link:focus-visible { outline: 2px solid #393630; outline-offset: 4px; }
.lookbook-card__image { position: relative; aspect-ratio: 4 / 5; overflow: hidden; background: #f0eeeb; }
.lookbook-card__image img { position: relative; z-index: 0; width: 100%; height: 100%; display: block; object-fit: cover; transition: transform .7s cubic-bezier(.2,.7,.2,1); }
.lookbook-card__image::after { position: absolute; z-index: 1; inset: 0; background: rgba(0, 0, 0, .45); content: ""; opacity: 0; pointer-events: none; transition: opacity .28s ease; }
.lookbook-card__title { position: absolute; z-index: 2; top: 50%; left: 50%; box-sizing: border-box; width: calc(100% - 36px); margin: 0; transform: translate(-50%, -50%); color: #fff; font-size: clamp(22px, 2.4vw, 32px); font-weight: 400; line-height: 1.2; text-align: center; overflow-wrap: anywhere; hyphens: auto; text-shadow: 0 1px 7px rgba(0, 0, 0, .34); }
.lookbook-card__link:hover .lookbook-card__image img, .lookbook-card__link:focus-visible .lookbook-card__image img { transform: scale(1.025); }
.lookbook-card__link:hover .lookbook-card__image::after, .lookbook-card__link:focus-visible .lookbook-card__image::after { opacity: 1; }
.lookbook-card__copy { padding: 17px 0; }
.lookbook-card__copy p { margin: 0; color: #706c66; line-height: 1.5; }
.lookbook-empty { grid-column: 1 / -1; padding: 48px 0; color: #706c66; }
.lookbook-detail-heading { display: block; }
.lookbook-description { margin: 10px 0 0; color: #6f6a64; font-size: 16px; line-height: 1.6; }
.lookbook-detail-cover { display: flex; justify-content: center; margin-bottom: 24px; }
.lookbook-detail-cover img { display: block; width: auto; height: auto; max-width: 100%; max-height: min(82dvh, 1100px); object-fit: contain; object-position: center; }
.lookbook-gallery { display: grid; width: 100%; max-width: 1240px; gap: clamp(28px, 4vw, 64px); margin: 0 auto; }
.lookbook-gallery__row { display: grid; width: 100%; min-width: 0; margin: 0 auto; }
.lookbook-gallery__row--portraits { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 1080px; gap: clamp(14px, 2.5vw, 32px); align-items: start; }
.lookbook-gallery__row--single { grid-template-columns: minmax(0, 1fr); max-width: 540px; }
.lookbook-gallery__row--wide { grid-template-columns: minmax(0, 1fr); max-width: 1240px; }
.lookbook-photo { position: relative; display: flex; width: 100%; min-width: 0; justify-content: center; align-items: flex-start; margin: 0; }
.lookbook-photo__stage { position: relative; display: block; flex: 0 0 auto; max-width: 100%; max-height: 82dvh; background: #f4f2ef; line-height: 0; }
.lookbook-photo__stage > img { display: block; width: 100%; height: 100%; object-fit: contain; }
.lookbook-hotspots { position: absolute; inset: 0; pointer-events: none; }
.lookbook-hotspot { position: absolute; z-index: 1; width: 30px; height: 30px; margin: 0; padding: 0; transform: translate(-50%, -50%); display: grid; place-items: center; border: 1px solid #fff; border-radius: 50%; color: #292723; background: #f8f5efde; box-shadow: 0 1px 5px #0002; cursor: pointer; pointer-events: auto; transition: transform .16s ease, background .16s ease, box-shadow .16s ease; }
.lookbook-hotspot:hover, .lookbook-hotspot[aria-expanded="true"] { transform: translate(-50%, -50%) scale(1.04); background: #fff; box-shadow: 0 1px 6px #0003; }
.lookbook-hotspot:focus-visible { transform: translate(-50%, -50%) scale(1.04); outline: 2px solid #393630; outline-offset: 2px; }
.lookbook-hotspot:active { transform: translate(-50%, -50%) scale(.98); }
.lookbook-hotspot__pulse { position: absolute; inset: -3px; border: 1px solid #ffffffad; border-radius: 50%; box-shadow: 0 0 0 1px #29272322; animation: lookbook-pulse 2.8s ease-out infinite; pointer-events: none; }
.lookbook-hotspot__number { font-size: 11px; line-height: 1; font-weight: 700; }
@keyframes lookbook-pulse { 0% { opacity: .45; transform: scale(.85); } 72% { opacity: .17; transform: scale(1.2); } 100% { opacity: 0; transform: scale(1.5); } }
.lookbook-product-card { position: absolute; z-index: 3; box-sizing: border-box; width: min(330px, calc(100% - 24px)); padding: 10px; border: 1px solid #e6e2dc; background: #fff; box-shadow: 0 8px 32px #0002; opacity: 0; visibility: hidden; transform: translateY(7px); pointer-events: none; transition: opacity .18s ease, transform .18s ease, visibility 0s linear .18s; }
.lookbook-product-card.is-visible { opacity: 1; visibility: visible; transform: translateY(0); pointer-events: auto; transition: opacity .18s ease, transform .18s ease, visibility 0s; }
.lookbook-product-card__close { position: absolute; z-index: 2; top: 5px; right: 5px; width: 30px; height: 30px; border: 0; border-radius: 50%; background: #fff; font-size: 22px; cursor: pointer; }
.lookbook-product-card__link { display: grid; grid-template-columns: 82px minmax(0, 1fr); align-items: center; gap: 12px; padding-right: 30px; color: inherit; text-decoration: none; }
.lookbook-product-card__link > img { display: block; width: 82px; height: 100px; object-fit: cover; background: #f1efec; }
.lookbook-product-card__copy { display: grid; gap: 7px; padding-right: 8px; }
.lookbook-product-card__copy strong { font-size: 14px; font-weight: 500; line-height: 1.35; }
.lookbook-product-card__copy > span { font-size: 15px; }
.lookbook-product-card--no-image .lookbook-product-card__link { grid-template-columns: minmax(0, 1fr); }

@media (max-width: 720px) {
	.lookbook-grid { grid-template-columns: 1fr; gap: 22px; }
	.lookbook-card__image { aspect-ratio: 4 / 5; }
	.lookbook-detail-cover { margin-bottom: 18px; }
	.lookbook-detail-cover img { max-height: min(76dvh, 900px); }
	.lookbook-gallery { gap: 28px; }
	.lookbook-gallery__row--portraits, .lookbook-gallery__row--single, .lookbook-gallery__row--wide { grid-template-columns: minmax(0, 1fr); max-width: 100%; gap: 22px; }
	.lookbook-photo { flex-direction: column; align-items: center; }
	.lookbook-photo__stage, .lookbook-photo__stage > img { max-height: 76dvh; }
	.lookbook-product-card { padding: 8px; }
	.lookbook-product-card__link { grid-template-columns: 56px minmax(0, 1fr); gap: 8px; }
	.lookbook-product-card__link > img { width: 56px; height: 68px; }
	.lookbook-hotspot { width: 28px; height: 28px; }
}

@media (prefers-reduced-motion: reduce) {
	.lookbook-card__image img, .lookbook-card__image::after, .lookbook-hotspot { transition: none; }
	.lookbook-hotspot__pulse { animation: none; }
	.lookbook-product-card, .lookbook-product-card.is-visible { transition: none; }
}
