/* Oliva — Wishlist: the hearts, the note at the bottom and the Wishlist page. Brown (#3b2f2a) for what is chosen,
   never black; normal case except the short Add label, as on the product page. */

/* ---- The heart (cards, product page, the Wishlist page) ---- */
.oliva-wl-heart { position: relative; display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; margin: 0; padding: 0; border: 0; border-radius: 0; background: none; color: #1f1a14; cursor: pointer; -webkit-tap-highlight-color: transparent; }
.oliva-wl-heart::before { content: ""; position: absolute; inset: -4px; } /* a comfortable tap area */
.oliva-wl-heart:hover, .oliva-wl-heart:focus { background: none; color: #3b2f2a; }
.oliva-wl-heart:focus-visible { outline: 1px solid #3b2f2a; outline-offset: 1px; }
.oliva-wl-heart__svg { display: block; width: 18px; height: 18px; fill: none; transition: transform .2s ease; }
.oliva-wl-heart.is-on { color: #3b2f2a; }
.oliva-wl-heart.is-on .oliva-wl-heart__svg { fill: currentColor; }
.oliva-wl-heart:active .oliva-wl-heart__svg { transform: scale(.86); }

/* Product cards: the photo's top right corner, «Nuevo» just to its left on the same line (Josep, 29/10/2026). The
   label is drawn by «Oliva — Product page» (white.css, ::after at 10 px from the corner); 10 px high type in a 21 px box,
   so its centre is 20.5 px down, as the heart's. A soft light edge keeps the line visible on dark photos. */
.oliva-wl-host { position: relative; }
.oliva-wl-heart--photo { position: absolute; top: 4px; right: 4px; z-index: 3; }
.oliva-wl-heart--photo .oliva-wl-heart__svg { filter: drop-shadow(0 0 1.5px rgba(255, 255, 255, .9)); }
body .e-loop-item.e-loop-item .oliva-wl-host.elementor-element-5380d57::after { right: 42px; } /* beats white.css's rule, whatever the order */
.oliva-wl-card { position: relative; }
.oliva-wl-card > .oliva-wl-heart--photo { top: 4px; right: 4px; }

/* Product page. Computers: at the right of the name. Phones: the main photo's top right corner, as on the cards (not in
   the bottom panel; Josep, 29/10/2026). */
@media (min-width: 768px) {
	.oliva-wl-buy { position: relative; }
	.oliva-wl-buy .oliva-pp__title { padding-right: 44px; }
	.oliva-wl-heart--pp { position: absolute; top: 10px; right: -12px; width: 40px; height: 40px; } /* drawn heart ends where the rule under the price does; top set by the script (on the name's first line) */
	.oliva-wl-heart--pp .oliva-wl-heart__svg { width: 22px; height: 22px; }
	.oliva-wl-heart--hero { display: none; }
}
@media (max-width: 767px) {
	.oliva-pp__buy > .oliva-wl-heart--pp { display: none; }
	.oliva-wl-heart--hero { top: 6px; right: 6px; width: 40px; height: 40px; }
	.oliva-wl-heart--hero .oliva-wl-heart__svg { width: 20px; height: 20px; }
}

/* ---- «Saved to your wishlist»: the same box as «Added to your bag» (Oliva — Product page, product-page.css) ---- */
.oliva-wl-added { position: fixed; top: 110px; right: 32px; z-index: 9993; box-sizing: border-box; width: min(500px, calc(100vw - 32px)); padding: 16px; background: #fff; border: 1px solid #3b2f2a;
	color: #4a423a; font: 400 13px/1.6 "Jost", system-ui, sans-serif; visibility: hidden; opacity: 0; transform: translateY(-8px); transition: opacity .2s, transform .2s, visibility 0s .2s; }
html.oliva-wl-added-open .oliva-wl-added { visibility: visible; opacity: 1; transform: none; transition: opacity .2s, transform .2s; }
.oliva-wl-added:focus { outline: none; }
.oliva-wl-added__head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 14px; }
.oliva-wl-added__title { margin: 0; color: #1f1a14; font: 500 12px/1 "Jost", system-ui, sans-serif; letter-spacing: .08em; text-transform: uppercase; }
.oliva-wl-added .oliva-wl-added__close { width: 28px; height: 28px; margin: -6px -6px -6px 0; padding: 0; border: 0; background: none; color: #1f1a14; font: 300 24px/1 "Jost", system-ui, sans-serif; cursor: pointer; }
.oliva-wl-added .oliva-wl-added__close:hover, .oliva-wl-added .oliva-wl-added__close:focus { background: none; color: #3b2f2a; }
.oliva-wl-added .oliva-wl-added__body, .oliva-wl-added .oliva-wl-added__body > li { margin: 0; padding: 0; list-style: none; }
.oliva-wl-added__item { display: flex; align-items: flex-end; gap: 10px; }
.oliva-wl-added__item img { flex: none; width: 130px; aspect-ratio: 3 / 4; object-fit: cover; background: #f6f6f6; }
.oliva-wl-added__item img[hidden] { display: none; }
.oliva-wl-added__text { min-width: 0; }
.oliva-wl-added .oliva-wl-added__text p { margin: 0 0 8px; color: #4a423a; font: inherit; text-transform: none; letter-spacing: 0; }
.oliva-wl-added .oliva-wl-added__text p:last-child { margin-bottom: 0; }
.oliva-wl-added__text del { color: #8d7c7a; margin-right: 6px; }
.oliva-wl-added__price .elementor-widget-container { margin: 0; }
.oliva-wl-added__buttons { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 16px; }
.oliva-wl-added .oliva-wl-added__button { display: flex; align-items: center; justify-content: center; box-sizing: border-box; width: 100%; height: 46px; border: 1px solid #3b2f2a; background: transparent; color: #3b2f2a;
	font: 400 12px/1 "Jost", system-ui, sans-serif; letter-spacing: .16em; text-transform: uppercase; text-decoration: none; transition: background .2s, color .2s; cursor: pointer; }
.oliva-wl-added .oliva-wl-added__button:hover { background: #3b2f2a; color: #fff; }
.oliva-wl-added .oliva-wl-added__button.is-loading { opacity: .5; pointer-events: none; }
.oliva-wl-added .oliva-wl-added__button--dark { background: #3b2f2a; color: #fff; }
.oliva-wl-added .oliva-wl-added__button--dark:hover { background: #4d3b39; border-color: #4d3b39; }
.oliva-wl-veil { display: none; }
@media (max-width: 767px) { /* from the bottom, the page dimmed behind, a handle instead of the ×, View wishlist first */
	.oliva-wl-added { top: auto; left: 0; right: 0; bottom: 0; width: auto; border: 0; padding: 34px 16px calc(16px + env(safe-area-inset-bottom)); opacity: 1;
		transform: translateY(100%); transition: transform .3s cubic-bezier(.2, .7, .2, 1), visibility 0s .3s; overscroll-behavior: contain; touch-action: none; }
	.oliva-wl-added::before { content: ""; position: absolute; top: 8px; left: 50%; width: 56px; height: 2px; margin-left: -28px; background: #3b2f2a; }
	html.oliva-wl-added-open .oliva-wl-added { transform: none; transition: transform .3s cubic-bezier(.2, .7, .2, 1); }
	.oliva-wl-veil { display: block; position: fixed; inset: 0; z-index: 9990; background: rgba(31, 26, 20, .25); opacity: 0; pointer-events: none; transition: opacity .3s; touch-action: none; }
	html.oliva-wl-added-open .oliva-wl-veil { opacity: 1; pointer-events: auto; }
	.oliva-wl-added .oliva-wl-added__close { display: none; }
	.oliva-wl-added__head { margin-bottom: 18px; }
	.oliva-wl-added__buttons { grid-template-columns: 1fr; }
	.oliva-wl-added .oliva-wl-added__button { height: 44px; }
	.oliva-wl-added .oliva-wl-added__button--dark { order: -1; }
}
@media (prefers-reduced-motion: reduce) { .oliva-wl-added, html.oliva-wl-added-open .oliva-wl-added { transition: none; } }

/* ---- «Compartir lista»: Zara's «Your list is private · Make public», in the bag box's look ---- */
.oliva-wl-modal { position: fixed; inset: 0; z-index: 9995; display: none; align-items: center; justify-content: center; padding: 16px; }
.oliva-wl-modal.is-open { display: flex; }
.oliva-wl-modal__veil { position: absolute; inset: 0; background: rgba(31, 26, 20, .25); touch-action: none; }
.oliva-wl-modal__box { position: relative; box-sizing: border-box; width: min(440px, 100%); padding: 24px; background: #fff; border: 1px solid #3b2f2a; color: #4a423a; font: 400 13px/1.6 "Jost", system-ui, sans-serif; overscroll-behavior: contain; }
.oliva-wl-modal__box:focus { outline: none; }
.oliva-wl-modal .oliva-wl-modal__title { margin: 0 0 10px; color: #1f1a14; font: 500 12px/1.3 "Jost", system-ui, sans-serif; letter-spacing: .08em; text-transform: uppercase; }
.oliva-wl-modal .oliva-wl-modal__text { margin: 0 0 20px; color: #4a423a; font: inherit; }
.oliva-wl-modal .oliva-wl-modal__link { box-sizing: border-box; margin: 0 0 16px; padding: 12px; background: #f6f6f6; color: #1f1a14; font: 400 13px/1.5 "Jost", system-ui, sans-serif; overflow-wrap: anywhere; user-select: all; -webkit-user-select: all; } /* the whole link, never cut */
.oliva-wl-modal [hidden] { display: none !important; }
.oliva-wl-modal__buttons { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.oliva-wl-modal .oliva-wl-modal__button { display: flex; align-items: center; justify-content: center; box-sizing: border-box; width: 100%; height: 46px; margin: 0; padding: 0 8px; border: 1px solid #3b2f2a; border-radius: 0; background: #fff; color: #3b2f2a;
	font: 400 12px/1.2 "Jost", system-ui, sans-serif; letter-spacing: .16em; text-transform: uppercase; text-align: center; cursor: pointer; transition: background .2s, color .2s; }
.oliva-wl-modal .oliva-wl-modal__button:hover, .oliva-wl-modal .oliva-wl-modal__button:focus-visible { background: #3b2f2a; color: #fff; }
.oliva-wl-modal .oliva-wl-modal__button--dark { background: #3b2f2a; color: #fff; }
.oliva-wl-modal .oliva-wl-modal__button--dark:hover, .oliva-wl-modal .oliva-wl-modal__button--dark:focus-visible { background: #4d3b39; border-color: #4d3b39; }
.oliva-wl-modal .is-loading { opacity: .5; pointer-events: none; }
.oliva-wl-modal .oliva-wl-modal__private { display: block; margin: 18px auto 0; padding: 0; border: 0; background: none; color: #3b2f2a; font: inherit; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.oliva-wl-modal .oliva-wl-modal__private:hover, .oliva-wl-modal .oliva-wl-modal__private:focus { background: none; color: #3b2f2a; }
@media (max-width: 359px) { .oliva-wl-modal__buttons { grid-template-columns: 1fr; } } /* the smallest phones: one under the other, nothing cut */

/* ---- «Removed from your wishlist · Undo», «Your wishlist is no longer shared»: on computers where «Added to your bag» and
   «Saved to your wishlist» open (top right, under the header, the same box; Josep, 29/10/2026); on phones at the bottom ---- */
.oliva-wl-toast { position: fixed; top: 110px; right: 32px; z-index: 99990; display: flex; align-items: center; gap: 20px; box-sizing: border-box; width: min(500px, calc(100vw - 32px)); padding: 12px 10px 12px 16px;
	background: #fff; border: 1px solid #3b2f2a; color: #1f1a14; font: 400 13px/1.4 "Jost", system-ui, sans-serif;
	opacity: 0; visibility: hidden; transform: translateY(-8px); transition: opacity .2s ease, transform .2s ease, visibility 0s linear .2s; }
.oliva-wl-toast.is-open { opacity: 1; visibility: visible; transform: none; transition: opacity .2s ease, transform .2s ease; }
.oliva-wl-toast__text { flex: 1 1 auto; min-width: 0; }
.oliva-wl-toast__action { flex: none; color: #3b2f2a; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.oliva-wl-toast__action[hidden] { display: none; }
.oliva-wl-toast__close { flex: none; display: inline-flex; width: 32px; height: 32px; align-items: center; justify-content: center; margin: 0; padding: 0; border: 0; background: none; color: #1f1a14; cursor: pointer; }
.oliva-wl-toast__close:hover, .oliva-wl-toast__close:focus { background: none; color: #3b2f2a; }
.oliva-wl-toast__close svg { width: 12px; height: 12px; fill: none; stroke: currentColor; stroke-width: 1.4; }
@media (max-width: 767px) { /* phones: across the bottom; on the product page at the top, so its bottom panel stays free */
	.oliva-wl-toast { top: auto; left: 12px; right: 12px; bottom: calc(12px + env(safe-area-inset-bottom)); width: auto; max-width: none; transform: translateY(8px); }
	.single-product .oliva-wl-toast { bottom: auto; top: calc(12px + env(safe-area-inset-top)); transform: translateY(-8px); }
	.single-product.admin-bar .oliva-wl-toast { top: 58px; }
}
@media (prefers-reduced-motion: reduce) { .oliva-wl-toast, .oliva-wl-toast.is-open { transform: none; transition: none; } }

/* ---- The Wishlist page ---- */
/* The theme (Hello) keeps pages in a narrow column: this one uses the shop's (1140 px of content, as the footer) */
body.oliva-wl-page .site-main, body.oliva-wl-page .site-main .page-content { max-width: none; width: 100%; margin: 0; padding-left: 0; padding-right: 0; }
body.oliva-wl-page .site-main .page-header { display: none; }
.oliva-wl { box-sizing: border-box; max-width: 1212px; margin: 0 auto; padding: 16px 20px 80px; color: #1f1a14; font: 400 13px/1.6 "Jost", system-ui, sans-serif; }
/* The header as the bag's (oliva-cart__head): title on the left, the count on the right, a line under them */
.oliva-wl__head { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; margin: 0; padding-bottom: 18px; border-bottom: 1px solid #e5e5e5; }
/* The title as the bag's («Tu cesta», oliva-cart__title): 44 px on phones, 72 px on computers, set tight; under the header as Shop all's (16 px on phones, 28 px on computers) */
.oliva-wl .oliva-wl__title { margin: 0; font: 300 44px/1 "Cormorant Garamond", Georgia, serif; letter-spacing: -.01em; color: #1f1a14; text-transform: none; }
.oliva-wl .oliva-wl__title em { font-style: italic; }
.oliva-wl .oliva-wl__count { margin: 0 0 4px; font-size: 12px; color: #4a423a; white-space: nowrap; }
.oliva-wl__bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px; margin: 20px 0 0; }
.oliva-wl__bar:not(:has(> :not([hidden]))) { display: none; }
.oliva-wl__bar .oliva-wl__note { flex: 1 1 260px; margin: 0; }
.oliva-wl .oliva-wl__share { margin: 0 0 0 auto; flex: none; padding: 10px 18px; border: 1px solid #3b2f2a; border-radius: 0; background: #fff; color: #3b2f2a; font: inherit; line-height: 1.2; cursor: pointer; white-space: nowrap; }
.oliva-wl .oliva-wl__share:hover, .oliva-wl .oliva-wl__share:focus-visible { background: #3b2f2a; color: #fff; }
.oliva-wl .oliva-wl__share[hidden] { display: none; }
.oliva-wl .oliva-wl__share:focus { outline: none; } /* back from the share box: no ring for a click or a tap… */
.oliva-wl .oliva-wl__share:focus-visible { outline: 1px solid #3b2f2a; outline-offset: 3px; } /* …one thin brown one for the keyboard */
.oliva-wl__note, .oliva-wl__status, .oliva-wl__mine { margin: 0 0 16px; color: #4a423a; }
.oliva-wl__note a, .oliva-wl__mine a, .oliva-wl__note button, .oliva-wl__status button { margin: 0; padding: 0; border: 0; background: none; color: #3b2f2a; font: inherit; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.oliva-wl__note button:hover, .oliva-wl__status button:hover { background: none; color: #3b2f2a; }
.oliva-wl [hidden] { display: none !important; }
.oliva-wl__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 12px; margin: 24px 0 0; padding: 0; list-style: none; }
.oliva-wl-card { display: flex; flex-direction: column; min-width: 0; margin: 0; padding: 0; }
.oliva-wl-card__photo { display: block; aspect-ratio: 2 / 3; overflow: hidden; background: #f6f6f6; }
.oliva-wl-card__photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.oliva-wl-card__text { flex: 1 1 auto; padding: 12px 0 0; }
.oliva-wl-card__name { margin: 0 0 4px; font: 400 18px/1.25 "Cormorant Garamond", Georgia, serif; color: #1f1a14; text-transform: none; }
.oliva-wl .oliva-wl-card__name a { color: inherit; text-decoration: none; }
.oliva-wl-card__price { font-weight: 500; }
/* Colour squares, as on the shop's cards (Elementor loop item 257, widget «oliva-card-colours») */
.oliva-wl-card__colours { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; min-height: 24px; margin: 0 0 2px; }
.oliva-wl-card__colours span { display: block; box-sizing: border-box; width: 12px; height: 12px; border: 1px solid rgba(31, 26, 20, .25); }
.oliva-wl .oliva-wl-card__add { display: flex; align-items: center; justify-content: center; box-sizing: border-box; min-height: 44px; margin-top: 14px; padding: 12px; background: #3b2f2a; border: 1px solid #3b2f2a; color: #fff; font: 400 11px/1.2 "Jost", system-ui, sans-serif; letter-spacing: .14em; text-transform: uppercase; text-align: center; text-decoration: none; }
.oliva-wl .oliva-wl-card__add:hover, .oliva-wl .oliva-wl-card__add:focus-visible { background: #4d3b39; border-color: #4d3b39; color: #fff; }
.oliva-wl .oliva-wl-card__add.is-loading { opacity: .6; pointer-events: none; }
.oliva-wl .oliva-wl-card__add.is-sold-out { background: #fff; color: #8d7c7a; border-color: #e5e5e5; }
/* My account → Favoritos: the account's title and column (its own header goes; the count is in the menu's place) */
.oliva-wl.oliva-wl--account { max-width: none; margin: 0; padding: 0; }
.oliva-wl--account .oliva-wl__head { display: none; }
.oliva-wl--account .oliva-wl__bar { margin-top: 0; }
.oliva-wl--account .oliva-wl__bar .oliva-wl__lead { flex: 1 1 260px; margin: 0; } /* the account's line, «Compartir lista» at its right */
.oliva-wl--account .oliva-wl__grid { margin-top: 24px; }
@media (min-width: 768px) { .oliva-wl--account .oliva-wl__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

/* Grey cards while the server answers (pieces with no copy in this browser yet, shared lists) */
.oliva-wl-card.is-skeleton .oliva-wl-card__photo, .oliva-wl-sk, .oliva-wl .oliva-wl-card.is-skeleton .oliva-wl-card__add { background: #f1efec; border-color: #f1efec; animation: oliva-wl-pulse 1.4s ease-in-out infinite; }
.oliva-wl-sk { display: block; height: 14px; margin: 14px 30% 0 0; }
.oliva-wl-sk--short { width: 30%; margin-top: 8px; }
@keyframes oliva-wl-pulse { 50% { opacity: .55; } }
@media (prefers-reduced-motion: reduce) { .oliva-wl-card.is-skeleton *, .oliva-wl-sk { animation: none; } }
.oliva-wl__sr { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.oliva-wl__empty { max-width: 420px; margin: 40px 0 0; }
.oliva-wl__empty h2 { margin: 0 0 8px; font: 300 28px/1.2 "Cormorant Garamond", Georgia, serif; color: #1f1a14; text-transform: none; }
.oliva-wl__empty p { margin: 0 0 24px; color: #4a423a; }
.oliva-wl .oliva-wl__button { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 12px 28px; background: #3b2f2a; color: #fff; font: 400 11px/1.2 "Jost", system-ui, sans-serif; letter-spacing: .14em; text-transform: uppercase; text-decoration: none; }
.oliva-wl .oliva-wl__button:hover { background: #4d3b39; color: #fff; }
@media (min-width: 768px) {
	.oliva-wl { padding: 28px 36px 120px; }
	.oliva-wl .oliva-wl__title { font-size: 72px; }
	.oliva-wl__head { padding-bottom: 28px; }
	.oliva-wl .oliva-wl__count { margin-bottom: 8px; }
	.oliva-wl__bar { margin-top: 24px; }
	.oliva-wl__grid { margin-top: 32px; }
	.oliva-wl__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 48px 24px; }
}
@media (min-width: 1025px) { .oliva-wl__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 767px) {
	.oliva-wl-card__name { font-size: 16px; }
}
