/* The Lighterhouse — Wishlist 2.0 (hearts, drawer, wishlist pages, recommendations) */

/* ---------------------------------------------------------------- heart on images */
.tlh-wishlist-button,
button.tlh-wishlist-button {
	position: absolute !important;
	top: 14px !important;
	right: 14px !important;
	width: 42px !important;
	height: 42px !important;
	min-width: 0 !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 999px !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	background: rgba(255, 255, 255, .34) !important;
	color: #1f1f1f !important;
	cursor: pointer !important;
	line-height: 1 !important;
	text-decoration: none !important;
	-webkit-appearance: none !important;
	appearance: none !important;
	-webkit-backdrop-filter: blur(8px) !important;
	backdrop-filter: blur(8px) !important;
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .58) !important;
	transition: opacity .2s ease, transform .2s ease, background .2s ease, color .2s ease !important;
	z-index: 5 !important;
}
.tlh-wishlist-button:hover,
.tlh-wishlist-button:focus-visible,
.tlh-wishlist-button.is-active {
	background: rgba(255, 255, 255, .5) !important;
	color: #FE5000 !important;
}
.tlh-wishlist-button:focus { outline: none !important; }
.tlh-wishlist-button:focus-visible { outline: 2px solid #1f1f1f !important; outline-offset: 2px !important; }
.tlh-wishlist-button__icon { display: inline-flex !important; width: 18px !important; height: 18px !important; flex: 0 0 18px !important; pointer-events: none; }
.tlh-wishlist-button__icon svg { display: block !important; width: 18px !important; height: 18px !important; overflow: visible !important; }
.tlh-wishlist-button svg path { fill: none !important; stroke: currentColor !important; transition: fill .2s ease; }
.tlh-wishlist-button.is-active svg path { fill: currentColor !important; }
.tlh-wishlist-button.is-pop .tlh-wishlist-button__icon { animation: tlhWlPop .38s ease; }
@keyframes tlhWlPop { 0% { transform: scale(1); } 40% { transform: scale(1.28); } 100% { transform: scale(1); } }

li.product,
.woocommerce ul.products li.product,
.woocommerce div.product div.images,
.single-product div.product .woocommerce-product-gallery { position: relative !important; }

.tlh-wishlist-button--single-overlay { top: 18px !important; right: 18px !important; z-index: 20 !important; }

/* Loops: show on hover on desktop, always on touch screens and when saved. */
.woocommerce ul.products li.product .tlh-wishlist-button--loop,
.tlh-wishlist-button--elementor-loop,
.tlh-wishlist-button--rec { opacity: 0 !important; }
.woocommerce ul.products li.product:hover .tlh-wishlist-button--loop,
.woocommerce ul.products li.product:focus-within .tlh-wishlist-button--loop,
.e-loop-item:hover .tlh-wishlist-button--elementor-loop,
.e-loop-item:focus-within .tlh-wishlist-button--elementor-loop,
.tlh-rec:hover .tlh-wishlist-button--rec,
.tlh-rec:focus-within .tlh-wishlist-button--rec,
.tlh-wishlist-button.is-active { opacity: 1 !important; }
@media (hover: none), (max-width: 1024px) {
	.woocommerce ul.products li.product .tlh-wishlist-button--loop,
	.tlh-wishlist-button--elementor-loop,
	.tlh-wishlist-button--rec { opacity: 1 !important; }
}

/* ---------------------------------------------------------------- header heart */
.tlh-wishlist-header-trigger,
button.tlh-wishlist-header-trigger {
	width: 24px; height: 24px; padding: 0 !important; margin: 0 !important; border: 0 !important;
	background: transparent !important; box-shadow: none !important; outline: none;
	color: #fff !important; display: inline-flex; align-items: center; justify-content: center;
	cursor: pointer; -webkit-appearance: none; appearance: none; line-height: 1; vertical-align: middle;
	transition: color .2s ease;
}
.tlh-wishlist-header-trigger:hover,
.tlh-wishlist-header-trigger:focus-visible { color: #FE5000 !important; background: transparent !important; }
.tlh-wishlist-header-trigger__icon, .tlh-wishlist-header-trigger__icon svg { display: block; width: 18px; height: 18px; }
.tlh-wishlist-header-trigger svg path { fill: none; stroke: currentColor; }
.tlh-wishlist-header-trigger.is-active svg path { fill: currentColor; }
.tlh-wishlist-header-trigger.is-just-added { animation: tlhWlLift .45s ease; }
@keyframes tlhWlLift { 35% { transform: translateY(-4px); } }

/* ---------------------------------------------------------------- drawer */
.tlh-wishlist-drawer { position: fixed; inset: 0; z-index: 99999; }
.tlh-wishlist-drawer[hidden] { display: none; }
.tlh-wishlist-drawer__overlay { position: absolute; inset: 0; background: rgba(0, 0, 0, .32); opacity: 0; transition: opacity .25s ease; }
.tlh-wishlist-drawer__panel {
	position: absolute; top: 0; right: 0; bottom: 0; width: min(420px, 92vw);
	background: #f8f8f6; box-shadow: -8px 0 30px rgba(0, 0, 0, .12);
	transform: translateX(100%); transition: transform .28s cubic-bezier(.2, .7, .2, 1);
	display: flex; flex-direction: column; outline: none;
	font-family: "Shippori Mincho", serif; color: #1f1f1f;
}
body.tlh-wishlist-drawer-open { overflow: hidden; }
body.tlh-wishlist-drawer-open .tlh-wishlist-drawer__overlay { opacity: 1; }
body.tlh-wishlist-drawer-open .tlh-wishlist-drawer__panel { transform: none; }
.tlh-wishlist-drawer__header { display: flex; align-items: center; justify-content: space-between; padding: 24px 24px 18px; border-bottom: 1px solid rgba(0, 0, 0, .08); }
.tlh-wishlist-drawer__title { margin: 0; font-family: "Shippori Mincho", serif; font-size: 28px; line-height: 1.1; font-weight: 400; color: #1f1f1f; }
.tlh-wishlist-drawer__close,
button.tlh-wishlist-drawer__close {
	all: unset; box-sizing: border-box; width: 32px !important; height: 32px !important; display: inline-flex !important;
	align-items: center; justify-content: center; cursor: pointer; color: #1f1f1f !important; background: transparent !important;
	border: 0 !important; padding: 0 !important; margin: 0 !important; box-shadow: none !important; min-width: 0 !important; min-height: 0 !important;
}
.tlh-wishlist-drawer__close svg { width: 18px; height: 18px; stroke: currentColor; stroke-width: 1.5; fill: none; }
.tlh-wishlist-drawer__close:hover, .tlh-wishlist-drawer__close:focus-visible { color: #FE5000 !important; }
.tlh-wishlist-drawer__body { flex: 1; overflow-y: auto; padding: 20px 24px; overscroll-behavior: contain; }
.tlh-wishlist-drawer__items { display: flex; flex-direction: column; }
.tlh-wishlist-drawer__empty-title { margin: 0 0 8px; font-size: 18px; line-height: 1.3; }
.tlh-wishlist-drawer__empty-text { margin: 0; font-size: 14px; line-height: 1.6; color: rgba(0, 0, 0, .68); }
.tlh-wishlist-drawer__note {
	margin: 0 24px; max-height: 0; overflow: hidden; opacity: 0; font-size: 14px; line-height: 1.5;
	transition: max-height .25s ease, opacity .25s ease, padding .25s ease;
}
.tlh-wishlist-drawer__note.is-on { max-height: 80px; opacity: 1; padding: 12px 0; }
.tlh-wishlist-drawer__note a { color: #FE5000; text-decoration: underline; text-underline-offset: 2px; }
.tlh-wishlist-drawer__footer { padding: 20px 24px 24px; border-top: 1px solid rgba(0, 0, 0, .08); }
.tlh-wishlist-drawer__button,
a.tlh-wishlist-drawer__button {
	display: flex; align-items: center; justify-content: center; min-height: 52px; padding: 14px 18px;
	border: 1px solid #1f1f1f; color: #1f1f1f !important; background: transparent; text-decoration: none !important;
	text-transform: uppercase; letter-spacing: .04em; font-size: 14px; transition: color .2s ease, border-color .2s ease;
}
.tlh-wishlist-drawer__button:hover, .tlh-wishlist-drawer__button:focus-visible { color: #FE5000 !important; border-color: #FE5000; }
@media (max-width: 767px) {
	.tlh-wishlist-drawer__header, .tlh-wishlist-drawer__body, .tlh-wishlist-drawer__footer { padding-left: 18px; padding-right: 18px; }
	.tlh-wishlist-drawer__note { margin: 0 18px; }
}

/* Drawer rows */
.tlh-wl-row {
	display: grid; grid-template-columns: 72px minmax(0, 1fr) auto; gap: 14px; align-items: start;
	padding: 14px 0; border-bottom: 1px solid rgba(0, 0, 0, .08);
	transition: opacity .25s ease, height .3s ease, padding .3s ease; overflow: hidden;
}
.tlh-wl-row:first-child { padding-top: 0; }
.tlh-wl-row:last-child { border-bottom: 0; }
.tlh-wl-row__img { display: block; width: 72px; height: 72px; background: #fff; overflow: hidden; }
.tlh-wl-row__img img { display: block; width: 100%; height: 100%; object-fit: cover; }
.tlh-wl-row__title, a.tlh-wl-row__title { display: block; margin: 0 0 8px; color: #1f1f1f !important; text-decoration: none !important; font-size: 15px; line-height: 1.45; }
.tlh-wl-row__title:hover { color: #FE5000 !important; }
.tlh-wl-row__price { font-size: 15px; }
.tlh-wl-row__sub, .tlh-wl-card__sub { display: block; margin: -4px 0 8px; font-size: 13px; line-height: 1.4; color: rgba(0, 0, 0, .55); }
.tlh-wl-row__label, .tlh-wl-card__label { font-size: 15px; color: rgba(0, 0, 0, .55); }
.tlh-wl-row__actions { display: flex; gap: 2px; margin-top: -6px; margin-right: -6px; }
.tlh-wishlist-button.tlh-wishlist-button--row,
.tlh-wl-icon, button.tlh-wl-icon {
	position: static !important; width: 36px !important; height: 36px !important; background: transparent !important;
	box-shadow: none !important; -webkit-backdrop-filter: none !important; backdrop-filter: none !important;
	opacity: 1 !important; transform: none !important;
}
.tlh-wl-icon, button.tlh-wl-icon {
	all: unset; box-sizing: border-box; display: inline-flex !important; align-items: center; justify-content: center;
	cursor: pointer; color: #1f1f1f !important; border: 0 !important; border-radius: 999px !important; padding: 0 !important;
	margin: 0 !important; min-width: 0 !important; min-height: 0 !important; transition: color .2s ease;
}
.tlh-wl-icon i { font-size: 20px; line-height: 1; display: block; }
.tlh-wl-icon:hover, .tlh-wl-icon:focus-visible, .tlh-wl-icon.is-added { color: #FE5000 !important; }
.tlh-wl-icon:focus-visible { outline: 2px solid #1f1f1f; outline-offset: 1px; }
.tlh-wl-icon.is-busy, .tlh-wl-btn.is-busy { opacity: .45; pointer-events: none; }
.tlh-wl-undo { display: none; margin-top: 6px; font-size: 13px; font-style: italic; color: rgba(0, 0, 0, .6); }
.is-leaving .tlh-wl-undo { display: block; }
.tlh-wl-row.is-leaving > .tlh-wl-row__img, .tlh-wl-row.is-leaving .tlh-wl-row__title,
.tlh-wl-row.is-leaving .tlh-wl-row__price, .tlh-wl-row.is-leaving .tlh-wl-icon { opacity: .4; }
.tlh-wl-row.is-gone { height: 0 !important; padding-top: 0; padding-bottom: 0; opacity: 0; border-bottom-width: 0; }
.tlh-wl-row.is-skeleton span { display: block; height: 72px; background: linear-gradient(90deg, #eeeeea, #f6f6f3, #eeeeea); background-size: 200% 100%; animation: tlhWlShimmer 1.2s linear infinite; }
.tlh-wl-row.is-skeleton span + span { height: 16px; margin-top: 4px; }
@keyframes tlhWlShimmer { to { background-position: -200% 0; } }

/* ---------------------------------------------------------------- wishlist pages */
.tlh-wl-page { width: 100%; font-family: "Shippori Mincho", serif; color: #1f1f1f; }
.tlh-wl-page [hidden] { display: none !important; }
.tlh-wl-page__header { margin-bottom: 32px; }
.tlh-wl-page__title { margin: 0 0 10px; font-family: "Shippori Mincho", serif; font-size: 38px; line-height: 1.1; font-weight: 400; }
.tlh-wl-page__intro { margin: 0 0 18px; font-size: 16px; line-height: 1.7; color: rgba(0, 0, 0, .68); max-width: 760px; }
.tlh-wl-page__empty { padding: 8px 0 18px; }
.tlh-wl-page__empty-title { margin: 0 0 8px; font-family: "Shippori Mincho", serif; font-size: 24px; font-weight: 400; }
.tlh-wl-page__empty-text { margin: 0 0 20px; font-size: 15px; line-height: 1.7; color: rgba(0, 0, 0, .68); }
.tlh-wl-page__section { margin-top: 32px; }
.tlh-wl-page__section-title { margin: 0 0 22px; padding-bottom: 12px; border-bottom: 1px solid rgba(0, 0, 0, .12); font-family: "Shippori Mincho", serif; font-size: 22px; font-weight: 400; }
.tlh-wl-page__section--sold .tlh-wl-card__media { opacity: .7; }
.tlh-wl-page__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px 24px; }
.tlh-wl-card { position: relative; display: flex; flex-direction: column; gap: 14px; transition: opacity .25s ease, transform .25s ease; }
.tlh-wl-card.is-leaving .tlh-wl-card__media, .tlh-wl-card.is-leaving .tlh-wl-card__title,
.tlh-wl-card.is-leaving .tlh-wl-card__price, .tlh-wl-card.is-leaving .tlh-wl-btn { opacity: .4; }
.tlh-wl-card.is-gone { opacity: 0; transform: translateY(8px); pointer-events: none; }
.tlh-wl-card__media { position: relative; background: #fff; aspect-ratio: 1 / 1; overflow: hidden; }
.tlh-wl-card__media a { display: block; height: 100%; }
.tlh-wl-card__media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.tlh-wl-card__title { margin: 0 0 6px; font-family: "Shippori Mincho", serif; font-size: 16px; line-height: 1.5; font-weight: 400; }
.tlh-wl-card__title a { color: #1f1f1f !important; text-decoration: none !important; }
.tlh-wl-card__title a:hover { color: #FE5000 !important; }
.tlh-wl-card__price { display: block; font-size: 15px; margin-bottom: 14px; }
.tlh-wl-card__label { display: block; margin-bottom: 14px; }
.tlh-wl-btn, a.tlh-wl-btn, button.tlh-wl-btn {
	all: unset; box-sizing: border-box; display: inline-flex !important; align-items: center; justify-content: center; gap: 8px;
	min-height: 44px; padding: 10px 18px; border: 1px solid #1f1f1f !important; background: transparent !important;
	color: #1f1f1f !important; font-family: "Shippori Mincho", serif !important; font-size: 14px !important; font-weight: 400 !important;
	letter-spacing: .02em !important; text-transform: none !important; line-height: 1.2 !important; border-radius: 0 !important;
	cursor: pointer; text-decoration: none !important; transition: color .2s ease, border-color .2s ease;
}
.tlh-wl-btn span { font: inherit !important; text-transform: inherit !important; }
.tlh-wl-btn svg { width: 18px; height: 18px; flex: 0 0 18px; }
.tlh-wl-btn:hover, .tlh-wl-btn:focus-visible, .tlh-wl-btn.is-added { color: #FE5000 !important; border-color: #FE5000 !important; }
.tlh-wl-page__header .tlh-wl-btn, .tlh-wl-page__empty .tlh-wl-btn { text-transform: uppercase !important; letter-spacing: .04em !important; min-height: 48px; padding: 12px 20px; }
/* Same as the product page button: text only, capitals, full width. */
.tlh-wl-btn.tlh-wl-btn--cart { width: 100%; min-height: 56px; padding: 18px 16px !important; background: #fff !important; border-color: #000 !important; color: #000 !important; font-weight: 500 !important; text-transform: uppercase !important; letter-spacing: normal !important; }
.tlh-wl-btn.tlh-wl-btn--cart:hover, .tlh-wl-btn.tlh-wl-btn--cart:focus-visible, .tlh-wl-btn.tlh-wl-btn--cart.is-added { color: #FE5000 !important; border-color: #FE5000 !important; }
@media (max-width: 1024px) { .tlh-wl-page__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) {
	.tlh-wl-page__title { font-size: 30px; }
	.tlh-wl-page__grid { gap: 28px 14px; }
	.tlh-wl-card__title { font-size: 14px; }
	.tlh-wl-btn.tlh-wl-btn--cart { min-height: 48px; padding: 14px 8px !important; font-size: 13px !important; }
}

/* Guest wishlist page (page 11238): no theme title, boxed. */
.page-id-11238 .page-header, .page-id-11238 .entry-title { display: none !important; }
.page-id-11238 .page-content { max-width: 1240px; margin: 0 auto; padding: 8em 32px !important; box-sizing: border-box; }

/* ---------------------------------------------------------------- recommendations */
.tlh-recs { width: 100%; font-family: "Shippori Mincho", serif; color: #1f1f1f; }
.tlh-recs[hidden] { display: none !important; }
.tlh-discover { width: 100%; }
.tlh-discover .tlh-recs + .tlh-recs, .tlh-wl-page .tlh-discover { margin-top: 72px; }
.tlh-discover .tlh-recs[hidden] + .tlh-recs { margin-top: 0; }
.tlh-recs__title, h2.tlh-recs__title {
	display: flex; align-items: center; gap: 12px; margin: 0 0 40px; padding: 0;
	font-family: "Shippori Mincho", serif; font-size: 25px; line-height: 1; font-weight: 700;
	text-transform: uppercase; text-align: center; color: #000; letter-spacing: normal;
}
/* Lines left and right, like the "You might also like" heading of the product page. */
.tlh-recs__title::before, .tlh-recs__title::after { content: ""; flex: 1 1 0; border-top: 1px solid #000; }
.tlh-recs__title span { flex: 0 1 auto; }
.tlh-recs__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 28px 24px; }
.tlh-rec { position: relative; text-align: center; }
.tlh-rec__link, a.tlh-rec__link { display: flex; flex-direction: column; align-items: center; color: #1f1f1f !important; text-decoration: none !important; }
.tlh-rec__media { display: block; width: 100%; aspect-ratio: 1 / 1; background: #fff; overflow: hidden; margin-bottom: 16px; }
.tlh-rec__media img { display: block; width: 100%; height: 100%; object-fit: contain; transition: transform .5s ease; }
.tlh-rec__link:hover .tlh-rec__media img { transform: scale(1.03); }
.tlh-rec__title { display: block; font-size: 16px; line-height: 1.35; letter-spacing: .01em; }
.tlh-rec__sub { display: block; margin-top: 4px; font-size: 13px; color: rgba(0, 0, 0, .55); }
.tlh-rec__price { display: block; margin-top: 8px; font-size: 15px; }
.tlh-rec__link:hover .tlh-rec__title { color: #FE5000; }
@media (max-width: 1024px) { .tlh-recs__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) {
	.tlh-recs__grid { gap: 24px 14px; }
	.tlh-rec__title { font-size: 14px; }
	.tlh-recs__title, h2.tlh-recs__title { font-size: 18px; margin-bottom: 28px; }
	.tlh-wishlist-button--rec { top: 8px !important; right: 8px !important; width: 36px !important; height: 36px !important; }
}
