/* Pepfine Core: estilos de los bloques del plugin (usan las variables y botones del tema Pepfine). */
.pfc-admin-note { margin: 12px 0; padding: 12px 14px; border: 2px dashed #b4573f; border-radius: 12px; background: #fff7f2; color: #6d2b18; font-size: 16px; }

/* barra de envío gratis */
.pfc-bar { margin: 0 0 18px; padding: 16px 18px; border-radius: 16px; background: #eef3f8; color: #14212c; }
.pfc-bar[hidden] { display: none; }
.pfc-bar__t { margin: 0 0 10px; font-size: 18px; line-height: 1.4; }
.pfc-bar__track { height: 10px; border-radius: 99px; background: #fff; overflow: hidden; }
.pfc-bar__track i { display: block; height: 100%; border-radius: 99px; background: #3a6b94; transition: width .4s ease; }
.pfc-bar.is-done .pfc-bar__track i { background: #1f6f43; }
@media (prefers-reduced-motion: reduce) { .pfc-bar__track i { transition: none; } }

/* boletín */
.pfc-nl { display: grid; gap: 10px; }
.pfc-nl__hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.pfc-nl .lp-nl__row { display: flex; gap: 10px; }
.pfc-nl input[type=email] { flex: 1; min-width: 0; min-height: 56px; padding: 0 18px; font: inherit; font-size: 18px; border: 1.5px solid #9a9993; border-radius: 999px; background: #fff; color: #1d1d1b; }
.pfc-nl input[aria-invalid="true"] { border-color: #a1442f; }
.pfc-nl .lp-btn { min-height: 56px; }
.pfc-nl .lp-nl__msg { margin: 0; font-size: 17px; min-height: 1.4em; }
.pfc-nl .lp-nl__msg.ok { color: #1f5a2a; font-weight: 600; }
.pfc-nl .lp-nl__msg.err { color: #a1442f; font-weight: 600; }
@media (max-width: 760px) { .pfc-nl .lp-nl__row { flex-direction: column; } }

/* recomendados del carrito */
.pfc-rec { margin-top: 40px; }
.pfc-up { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px; margin: 0 0 18px; padding: 18px 20px; border-radius: 18px; background: #14212c; color: #fff; }
.pfc-up p { margin: 0; font-size: 18px; max-width: 52ch; }
.pfc-up .lp-btn { background: #c9dbea; color: #14212c; border-color: #c9dbea; min-height: 52px; }
.pfc-rec__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.pfc-rec__card { display: flex; flex-direction: column; gap: 6px; padding: 0 0 14px; border: 1px solid #e2e1dc; border-radius: 18px; background: #fff; overflow: hidden; }
.pfc-rec__img img { display: block; width: 100%; aspect-ratio: 1; object-fit: cover; background: #f1f0ec; }
.pfc-rec__name { margin: 4px 14px 0; font-size: 18px; font-weight: 600; line-height: 1.3; color: #1d1d1b; text-decoration: none; }
.pfc-rec__price { margin: 0 14px; font-size: 17px; font-weight: 600; }
.pfc-rec__btn { margin: auto 14px 0; display: flex; align-items: center; justify-content: center; min-height: 52px; border-radius: 999px; border: 1.5px solid #1d1d1b; color: #1d1d1b; font-weight: 600; font-size: 17px; text-decoration: none; }
.pfc-rec__btn:hover { background: #1d1d1b; color: #fff; }
@media (max-width: 900px) { .pfc-rec__list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; } }

/* protección de envío */
.pfc-protect { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px; margin: 18px 0; padding: 16px 18px; border: 1.5px solid #d6e2ec; border-radius: 16px; background: #fff; }
.pfc-protect p { margin: 0; font-size: 17px; max-width: 56ch; }
.pfc-protect .pfc-protect__h { font-size: 19px; font-weight: 600; }
.pfc-protect__h span { color: #3a6b94; }
.pfc-protect.is-on { border-color: #1f6f43; background: #f2f8f4; }
.pfc-protect .lp-btn { min-height: 52px; }

/* agendar llamada */
.pfc-bk { display: grid; gap: 18px; font-size: 18px; }
.pfc-bk h2 { margin: 0; }
.pfc-bk__set { margin: 0; padding: 0; border: 0; display: grid; gap: 10px; }
.pfc-bk__set legend { margin-bottom: 8px; font-size: 19px; font-weight: 600; }
.pfc-bk__set legend small { font-weight: 500; color: #4a5d6d; font-size: 16px; }
.pfc-bk__day { margin: 6px 0 0; font-weight: 600; font-size: 17px; }
.pfc-bk__opts { display: flex; flex-wrap: wrap; gap: 8px; }
.pfc-bk__opt { position: relative; display: inline-flex; }
.pfc-bk__opt input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.pfc-bk__opt span { display: inline-flex; align-items: center; min-height: 52px; padding: 0 18px; border: 1.5px solid #c8d3dc; border-radius: 14px; background: #fff; font-size: 17px; font-weight: 600; cursor: pointer; }
.pfc-bk__opt input:checked + span { background: #14212c; border-color: #14212c; color: #fff; }
.pfc-bk__opt input:focus-visible + span { outline: 3px solid #3a6b94; outline-offset: 3px; }
.pfc-bk__field { display: grid; gap: 6px; margin: 0; }
.pfc-bk__field label { font-weight: 600; }
.pfc-bk__field input, .pfc-bk__field textarea { width: 100%; min-height: 56px; padding: 12px 16px; font: inherit; font-size: 18px; border: 1.5px solid #9fb4c6; border-radius: 14px; background: #fff; }
.pfc-bk .bk-btn { min-height: 58px; font-size: 19px; border: 0; cursor: pointer; }
.pfc-bk .bk-btn[disabled] { opacity: .5; cursor: not-allowed; }
.pfc-bk__err { margin: 0; padding: 12px 14px; border-radius: 12px; background: #fdecea; color: #8a2a17; font-weight: 600; }
.pfc-bk__fine { margin: 0; font-size: 15px; color: #4a5d6d; }
.pfc-bk__cal { max-width: 420px; padding: 16px; border: 1.5px solid #dfe5ea; border-radius: 18px; background: #fff; }
.pfc-bk__calhead { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; font-size: 18px; }
.pfc-bk__nav { width: 40px; height: 40px; border: 1.5px solid #c8d3dc; border-radius: 50%; background: #fff; font-size: 22px; line-height: 1; cursor: pointer; }
.pfc-bk__nav[disabled] { opacity: .3; cursor: default; }
.pfc-bk__grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 6px; text-align: center; }
.pfc-bk__wd { font-size: 13px; font-weight: 600; color: #6b7a87; text-transform: capitalize; padding-bottom: 4px; }
.pfc-bk__date { aspect-ratio: 1; min-height: 40px; border: 0; border-radius: 50%; background: transparent; color: #b3bcc4; font: inherit; font-size: 16px; }
.pfc-bk__date.is-open { background: #eaf1f7; color: #14212c; font-weight: 700; cursor: pointer; }
.pfc-bk__date.is-open:hover { background: #d5e3ef; }
.pfc-bk__date.is-on { background: #14212c; color: #fff; }
.pfc-bk__date.is-today { box-shadow: inset 0 0 0 1.5px #9fb4c6; }
.pfc-bk__date:focus-visible { outline: 3px solid #3a6b94; outline-offset: 2px; }
.pfc-bk__pick { margin: 0; color: #4a5d6d; font-size: 16px; }
.pfc-bk__dayset[hidden], .pfc-bk__cal[hidden], .pfc-bk__pick[hidden], .pfc-bk__need[hidden] { display: none; }

/* boletín: oferta y código */
.pfc-nl__offer { margin: 0; font-size: 18px; }
.pfc-nl__code { margin: 0; padding: 14px 16px; border-radius: 14px; background: #eef3f8; font-size: 18px; display: grid; gap: 4px; }
.pfc-nl__code b { font-size: 22px; letter-spacing: .04em; user-select: all; }
.pfc-nl__code small { font-size: 15px; color: #4a5d6d; }

/* puntos en el carrito y saldo */
.pfc-pts { margin: 18px 0; padding: 16px 18px; border-radius: 16px; background: linear-gradient(150deg, #fbf3dc 0%, #f3e3b4 100%); color: #1d1d1b; display: grid; gap: 10px; justify-items: start; }
.pfc-pts p { margin: 0; font-size: 18px; }
.pfc-pts .lp-btn { min-height: 52px; }
.pfc-pbal { display: grid; gap: 8px; justify-items: start; }
.pfc-pbal p { margin: 0; font-size: 18px; }
.pfc-pbal__k { font-size: 15px !important; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: #5a5040; }
.pfc-pbal__n { font-size: 44px !important; font-weight: 600; letter-spacing: -0.03em; line-height: 1; }
.pfc-pbal__n span { font-size: 20px; font-weight: 500; }

/* socios */
.pfc-af { display: grid; gap: 14px; }
.pfc-af .two { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.pfc-af select { width: 100%; min-height: 56px; padding: 0 14px; font: inherit; font-size: 18px; border: 1.5px solid #9fb4c6; border-radius: 14px; background: #fff; }
.pfc-af .af-agree { display: flex; gap: 10px; align-items: flex-start; font-size: 17px; }
.pfc-af .af-agree input { width: 24px; height: 24px; flex: none; margin-top: 2px; }
.pfc-af .af-submit { min-height: 58px; font-size: 19px; border: 0; cursor: pointer; }
.pfc-af--ok h2 em, .pfc-af h2 em { font-family: var(--wp--preset--font-family--serif); font-weight: 400; }
@media (max-width: 640px) { .pfc-af .two { grid-template-columns: 1fr; } }

/* mi cuenta */
.pfc-acc { display: grid; gap: 12px; font-size: 18px; }
.pfc-acc p { margin: 0; }
.pfc-acc__big { font-size: 48px !important; font-weight: 600; letter-spacing: -0.03em; line-height: 1; }
.pfc-acc__big span { font-size: 20px; font-weight: 500; }
.pfc-acc__rule { font-size: 16px; color: #4a5d6d; }
.pfc-acc__link input { width: 100%; min-height: 52px; padding: 0 14px; font-size: 17px; border: 1.5px solid #9fb4c6; border-radius: 12px; background: #fff; }
.pfc-acc__kpis { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 10px; }
.pfc-acc__kpis li { padding: 12px 14px; border-radius: 14px; background: #eef3f8; font-size: 15px; display: grid; }
.pfc-acc__kpis b { font-size: 22px; }

/* carrito lateral (Mini-Cart) */
/* carrito lateral, como el cajón de Shopify (drawer.js + parts/mini-cart.html del tema) */
.wc-block-mini-cart__drawer .components-modal__content, .wc-block-mini-cart__drawer .wc-block-mini-cart__template-part { color: #111; }
.wc-block-mini-cart__drawer .wc-block-mini-cart__title { display: flex; align-items: center; gap: 10px; margin: 18px 64px 6px 20px; font-size: 28px; font-weight: 700; letter-spacing: -.01em; mask-image: none; }
.wc-block-mini-cart__drawer .wp-block-woocommerce-mini-cart-title-items-counter-block { display: none; }
.pfc-count { display: inline-grid; place-items: center; min-width: 26px; height: 26px; padding: 0 8px; border-radius: 99px; background: #e8e8e8; color: #333; font-size: 15px; font-weight: 600; }
.wc-block-mini-cart__drawer .wc-block-components-drawer__close { top: 14px; right: 16px; width: 44px; height: 44px; display: grid; place-items: center; border: 1px solid #e3e3e3; border-radius: 50%; background: #fff; box-shadow: 0 2px 8px rgb(0 0 0 / .06); opacity: 1; }
.wc-block-mini-cart__drawer .wc-block-mini-cart__items { padding: 8px 20px 0; }
.wc-block-mini-cart__drawer .wc-block-cart-items__row { padding: 14px 0; border: 0; }
.wc-block-mini-cart__drawer .wc-block-cart-item__image img { width: 72px; height: 72px; object-fit: cover; border-radius: 6px; background: #f2f4f6; }
.wc-block-mini-cart__drawer .wc-block-components-product-name { font-size: 16px; font-weight: 500; color: #111; text-decoration: none; line-height: 1.35; }
.wc-block-mini-cart__drawer .wc-block-components-product-metadata, .wc-block-mini-cart__drawer .wc-block-components-product-details { font-size: 15px; color: #6b6b6b; }
.wc-block-mini-cart__drawer .wc-block-cart-item__prices { font-size: 15px; color: #6b6b6b; }
.wc-block-mini-cart__drawer .wc-block-cart-item__total { font-size: 16px; font-weight: 500; }
.wc-block-mini-cart__drawer .wc-block-components-product-badge { display: none; }
.wc-block-mini-cart__drawer .wc-block-cart-item__quantity { display: flex; align-items: center; gap: 14px; margin-top: 10px; }
.wc-block-mini-cart__drawer .wc-block-components-quantity-selector { width: 118px; height: 42px; border: 1px solid #d6d6d6; border-radius: 4px; }
.wc-block-mini-cart__drawer .wc-block-components-quantity-selector::after { display: none; }
.wc-block-mini-cart__drawer .wc-block-components-quantity-selector__button { min-width: 38px; font-size: 20px; color: #333; opacity: 1; }
.wc-block-mini-cart__drawer .wc-block-components-quantity-selector__input { font-size: 16px; }
.wc-block-mini-cart__drawer .wc-block-cart-item__remove-link { width: 36px; height: 36px; font-size: 0 !important; background: currentColor; color: #111; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 7h16M10 11v6M14 11v6M6 7l1 12a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2l1-12M9 7V4h6v3'/%3E%3C/svg%3E") center / 22px no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 7h16M10 11v6M14 11v6M6 7l1 12a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2l1-12M9 7V4h6v3'/%3E%3C/svg%3E") center / 22px no-repeat; text-decoration: none; }
.pfc-dr { display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; margin: 8px 20px 16px; font-size: 15px; }
.pfc-dr p { margin: 0; }
.pfc-dr .pfc-bar { margin: 0; padding: 12px 14px; }
.pfc-dr .pfc-bar__t { font-size: 15px; margin-bottom: 8px; }
.pfc-dr__h { font-weight: 700; font-size: 17px; color: #14212c; }
.pfc-dr__rech { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.pfc-dr__arrows { display: flex; gap: 2px; }
.pfc-dr__arrows button { width: 36px; height: 36px; border: 0; border-radius: 50%; background: transparent; color: #333; font-size: 24px; line-height: 1; cursor: pointer; }
.pfc-dr__arrows button:hover { background: #f1f1f1; }
.pfc-dr__rec ul { list-style: none; margin: 10px 0 0; padding: 0 0 4px; display: flex; gap: 10px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
.pfc-dr__rec ul::-webkit-scrollbar { display: none; }
.pfc-dr__card { flex: 0 0 min(300px, 82%); scroll-snap-align: start; display: flex; gap: 10px; align-items: flex-start; padding: 10px; border: 1px solid #e3e3e3; border-radius: 10px; background: #fff; }
.pfc-dr__card.is-offer { border: 1px dashed #9fb4c6; background: #f1f6fb; }
.pfc-dr__img { flex: none; }
.pfc-dr__img img { display: block; width: 56px; height: 56px; object-fit: cover; border-radius: 8px; background: #f2f4f6; }
.pfc-dr__info { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.pfc-dr__name { font-size: 14.5px; font-weight: 700; line-height: 1.25; color: #111; text-decoration: none; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.pfc-dr__info small { font-size: 13px; line-height: 1.3; color: #5b5b5b; }
.pfc-dr__row { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 6px; }
.pfc-dr__price { font-size: 14.5px; font-weight: 700; }
.pfc-dr__add { flex: none; min-height: 32px; padding: 0 12px; border: 1.5px solid #111; border-radius: 99px; background: #fff; color: #111; font-weight: 600; font-size: 13.5px; line-height: 1; font-family: inherit; cursor: pointer; }
.pfc-dr__add:hover { background: #111; color: #fff; }
.pfc-dr__add:disabled { opacity: .5; cursor: progress; }
.pfc-dr__cats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 8px; }
.pfc-dr__cats a { display: flex; align-items: center; justify-content: center; min-height: 60px; padding: 8px 10px; border-radius: 14px; background: #eef3f8; color: #14212c; text-decoration: none; font-weight: 600; font-size: 16px; text-align: center; }
.pfc-dr--empty { margin: 18px 20px; }
.wc-block-mini-cart__drawer .wc-block-mini-cart__footer { padding: 0 20px 18px; border-top: 1px solid #e6e6e6; box-shadow: none; }
.wc-block-mini-cart__drawer .wc-block-mini-cart__footer-subtotal { display: none; }
.wc-block-mini-cart__drawer .wc-block-mini-cart__footer-actions { display: block; margin-top: 14px; }
.wc-block-mini-cart__drawer .wc-block-mini-cart__footer-checkout { display: flex; width: 100%; min-height: 56px; align-items: center; justify-content: center; border: 0; border-radius: 12px; background: #000; color: #fff; font-size: 17px; font-weight: 600; }
.wc-block-mini-cart__drawer .wc-block-mini-cart__footer-checkout:hover { background: #222; color: #fff; }
.pfc-df p { margin: 0; }
.pfc-df__disc { border-bottom: 1px solid #e6e6e6; }
.pfc-df__disc summary { display: flex; align-items: center; justify-content: space-between; min-height: 50px; font-size: 15px; cursor: pointer; list-style: none; }
.pfc-df__disc summary::-webkit-details-marker { display: none; }
.pfc-df__disc summary i { position: relative; width: 14px; height: 14px; }
.pfc-df__disc summary i::before, .pfc-df__disc summary i::after { content: ''; position: absolute; left: 0; top: 6px; width: 14px; height: 2px; background: #111; }
.pfc-df__disc summary i::after { transform: rotate(90deg); transition: transform .2s; }
.pfc-df__disc[open] summary i::after { transform: none; }
.pfc-df__form { display: flex; gap: 8px; padding-bottom: 12px; }
.pfc-df__form input { flex: 1; min-width: 0; height: 44px; padding: 0 12px; border: 1px solid #cfcfcf; border-radius: 8px; font: inherit; font-size: 15px; }
.pfc-df__form button { padding: 0 16px; border: 0; border-radius: 8px; background: #111; color: #fff; font-weight: 600; cursor: pointer; }
.pfc-df__disc summary { gap: 10px; }
.pfc-df__lbl { flex: none; }
.pfc-df__chips { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; margin-left: auto; min-width: 0; }
.pfc-df__disc summary i { flex: none; }
.pfc-df__chip { display: inline-flex; align-items: center; gap: 6px; max-width: 100%; padding: 3px 2px 3px 10px; border-radius: 6px; background: #e8f3ec; color: #1d5c3a; font-size: 13px; font-weight: 600; line-height: 1.2; }
.pfc-df__chip > span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pfc-df__chip em { flex: none; font-style: normal; font-weight: 700; }
.pfc-df__chip button { flex: none; width: 26px; height: 26px; border: 0; background: none; color: inherit; font-size: 18px; line-height: 1; cursor: pointer; }
.pfc-df__chip button:focus-visible { outline: 3px solid #3a6b94; outline-offset: 0; border-radius: 4px; }
.pfc-df__prot { display: flex; align-items: center; gap: 12px; margin-top: 16px; padding: 14px 16px; border: 1px solid #dfe5ea; border-radius: 12px; background: #f3f6f8; }
.pfc-df__shield { flex: none; width: 38px; height: 38px; display: grid; place-items: center; border: 1.5px solid #111; border-radius: 50%; }
.pfc-df__shield svg { width: 20px; height: 20px; fill: none; stroke: #111; stroke-width: 1.8; stroke-linejoin: round; }
.pfc-df__prot > div { flex: 1; min-width: 0; font-size: 14.5px; line-height: 1.4; color: #333; }
.pfc-df__prot b { font-size: 16px; color: #111; }
.pfc-df__prot b + span { margin-left: 4px; color: #5b5b5b; }
.pfc-df__sw { flex: none; position: relative; width: 50px; height: 28px; border: 0; border-radius: 99px; background: #c8ced3; cursor: pointer; transition: background .2s; }
.pfc-df__sw i { position: absolute; top: 3px; left: 3px; width: 22px; height: 22px; border-radius: 50%; background: #fff; transition: transform .2s; }
.pfc-df__sw[aria-checked="true"] { background: #111; }
.pfc-df__sw[aria-checked="true"] i { transform: translateX(22px); }
.pfc-df__sw[aria-checked="true"] i::after { content: '✓'; position: absolute; inset: 0; display: grid; place-items: center; color: #111; font-size: 13px; font-weight: 700; }
.pfc-df__sw:focus-visible, .pfc-dr__add:focus-visible, .pfc-dr__arrows button:focus-visible, .pfc-df__disc summary:focus-visible { outline: 3px solid #3a6b94; outline-offset: 2px; }
.pfc-df__msg { margin-top: 8px !important; font-size: 14px; color: #a1442f; font-weight: 600; }
.pfc-df__msg:empty { display: none; }
.pfc-df__total { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; margin-top: 16px !important; font-size: 17px; }
.pfc-df__total b { font-size: 18px; }
.pfc-dt { margin: 14px 0 0; text-align: center; font-size: 14.5px; color: #333; }
.pfc-dt span { margin-right: 6px; color: #e3a008; letter-spacing: 1px; }
.pf-mc-empty { margin: 32px 20px 12px; font-size: 18px; }
@media (prefers-reduced-motion: reduce) { .pfc-df__sw, .pfc-df__sw i, .pfc-df__disc summary i::after { transition: none; } }

/* selector país, idioma y moneda (menú) */
.pfl { position: relative; }
.pfl > summary { list-style: none; }
.pfl > summary::-webkit-details-marker { display: none; }
.pfl__btn { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 0 12px 0 8px; border: 1.5px solid #d9d8d2; border-radius: 999px; background: #fff; color: #1d1d1b; font-size: 15px; font-weight: 600; letter-spacing: .02em; cursor: pointer; white-space: nowrap; }
.pfl__btn:hover, .pfl[open] .pfl__btn { border-color: #1d1d1b; }
.pfl__btn:focus-visible, .pfl__dd:focus-visible, .pfl__opt:focus-visible, .pfl__sel:focus-visible, .pfl__acts button:focus-visible { outline: 3px solid #3a6b94; outline-offset: 2px; }
.pfl__btn i { font-style: normal; color: #8a8983; }
.pfl-flag { display: block; flex: none; border-radius: 50%; box-shadow: 0 0 0 1px rgba(0, 0, 0, .08); }
.pfl .pfl__chev { width: 16px !important; height: 16px !important; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; transition: transform .2s; }
.pfl[open] .pfl__btn .pfl__chev { transform: rotate(180deg); }
.pfl__menu { position: absolute; z-index: 1000; top: calc(100% + 10px); right: 0; width: min(380px, calc(100vw - 32px)); padding: 22px; border: 1px solid #e2e1dc; border-radius: 20px; background: #fff; color: #1d1d1b; box-shadow: 0 18px 50px rgba(20, 33, 44, .18); text-align: left; }
.pfl__title { margin: 0 0 16px; font-size: 20px; font-weight: 700; }
.pfl__form { display: grid; gap: 16px; margin: 0; }
.pfl__field { position: relative; display: grid; gap: 6px; }
.pfl__l { margin: 0; font-size: 15px; font-weight: 600; color: #4a4a46; }
.pfl__dd, .pfl__sel { display: flex; align-items: center; gap: 10px; width: 100%; min-height: 52px; padding: 0 14px; border: 1.5px solid #9a9993; border-radius: 14px; background: #fff; color: #1d1d1b; font: inherit; font-size: 17px; text-align: left; cursor: pointer; }
.pfl__dd span:nth-child(2) { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pfl__sel { appearance: auto; }
.pfl__sel:disabled { opacity: 1; background: #f6f5f1; cursor: default; }
.pfl__pop { position: absolute; z-index: 2; top: calc(100% + 6px); left: 0; right: 0; padding: 10px; border: 1px solid #e2e1dc; border-radius: 16px; background: #fff; box-shadow: 0 14px 40px rgba(20, 33, 44, .18); }
.pfl__pop[hidden] { display: none; }
.pfl__search { display: flex; align-items: center; gap: 8px; min-height: 48px; padding: 0 12px; border: 1.5px solid #d9d8d2; border-radius: 12px; }
.pfl__search svg { width: 20px !important; height: 20px !important; fill: none; stroke: #4a4a46; stroke-width: 2; stroke-linecap: round; }
.pfl__search input { flex: 1; min-width: 0; border: 0; outline: 0; background: transparent; font: inherit; font-size: 17px; color: #1d1d1b; }
.pfl__list { max-height: 300px; margin-top: 8px; overflow-y: auto; overscroll-behavior: contain; }
.pfl__opt { display: flex; align-items: center; gap: 10px; width: 100%; min-height: 48px; padding: 6px 10px; border: 0; border-radius: 10px; background: transparent; color: #1d1d1b; font: inherit; font-size: 17px; text-align: left; cursor: pointer; }
.pfl__opt[hidden] { display: none; }
.pfl__opt:hover, .pfl__opt:focus-visible { background: #eef3f8; }
.pfl__opt span { flex: 1; }
.pfl__opt svg { width: 20px !important; height: 20px !important; fill: none; stroke: #1f6f43; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; visibility: hidden; }
.pfl__opt[aria-selected="true"] { font-weight: 700; }
.pfl__opt[aria-selected="true"] svg { visibility: visible; }
.pfl__tag { margin-left: 6px; padding: 2px 8px; border-radius: 99px; background: #eef3f8; color: #2c5577; font-size: 13px; font-style: normal; font-weight: 600; }
.pfl__none { margin: 8px 10px; font-size: 16px; color: #4a4a46; }
.pfl__note { margin: 0; font-size: 14px; color: #5c5b56; }
.pfl__acts { display: flex; gap: 10px; justify-content: flex-end; }
.pfl__acts button { min-height: 52px; padding: 0 22px; border-radius: 999px; font: inherit; font-size: 17px; font-weight: 600; cursor: pointer; }
.pfl__cancel { border: 1.5px solid #1d1d1b; background: #fff; color: #1d1d1b; }
.pfl__save { border: 1.5px solid #1d1d1b; background: #1d1d1b; color: #fff; }
@media (max-width: 760px) {
	.pfl__btn { padding: 0 8px; gap: 4px; }
	.pfl__btn > span, .pfl__btn > i, .pfl__btn .pfl__chev { display: none; }
	.pfl__menu { position: fixed; top: auto; right: 0; bottom: 0; left: 0; width: auto; max-height: 88vh; overflow-y: auto; border-radius: 22px 22px 0 0; padding: 22px 16px calc(22px + env(safe-area-inset-bottom)); }
	.pfl__acts button { flex: 1; }
}
@media (prefers-reduced-motion: reduce) { .pfl .pfl__chev { transition: none; } }
/* Abierto: el encabezado (sticky, z-index 50) sube por encima del aviso de cookies, los modales y las barras fijas; si no, tapan el menú y «Guardar». */
html.pfl-open header.wp-block-template-part, html.pfl-open .pf-header, header.wp-block-template-part:has(details.pfl[open]) { z-index: 2147483600 !important; }
html.pfl-open .pfl__menu { z-index: 2147483600; }
.wc-block-mini-cart__drawer .components-modal__content { font-family: var(--wp--preset--font-family--sans, system-ui, sans-serif); }
.wc-block-mini-cart__drawer .wc-block-mini-cart__title { font-family: inherit; }
.pfc-dr *, .pfc-df * { box-sizing: border-box; }
.wc-block-mini-cart__drawer .wc-block-components-product-details { list-style: none; margin: 2px 0 4px; padding: 0; }
.wc-block-mini-cart__drawer .wc-block-components-product-details li { margin: 0; }
.wc-block-mini-cart__drawer .wc-block-components-product-details__name { display: none; }
.wc-block-mini-cart__drawer .wc-block-cart-item__prices ins, .wc-block-mini-cart__drawer .wc-block-components-product-price__value { text-decoration: none; }
.wc-block-mini-cart__drawer .wc-block-mini-cart__footer-checkout, .wc-block-mini-cart__drawer .wc-block-mini-cart__footer-checkout:hover { text-decoration: none; }

/* cookies y privacidad (consent.php + consent.js) */
.pfk-banner { position: fixed; z-index: 99990; left: 16px; right: 16px; bottom: 16px; display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; max-width: 980px; margin: 0 auto; padding: 16px 18px; border: 1px solid #dfe5ea; border-radius: 16px; background: #fff; color: #14212c; box-shadow: 0 18px 50px rgb(20 33 44 / .18); font-family: var(--wp--preset--font-family--sans, system-ui, sans-serif); font-size: 15.5px; line-height: 1.45; }
.pfk-banner[hidden], .pfk-modal[hidden] { display: none; }
.pfk-banner p { flex: 1 1 360px; margin: 0; }
.pfk-banner a, .pfk-dialog a, .pfk-page a { color: inherit; text-decoration: underline; }
.pfk-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.pfk-btn { min-height: 46px; padding: 0 18px; border: 1.5px solid #14212c; border-radius: 999px; background: #fff; color: #14212c; font: 600 15px/1 var(--wp--preset--font-family--sans, system-ui, sans-serif); cursor: pointer; }
.pfk-btn:hover { background: #eef3f8; }
.pfk-btn--main { background: #14212c; color: #fff; }
.pfk-btn--main:hover { background: #000; }
.pfk-btn:focus-visible, .pfk-sw:focus-visible, .pfk-x:focus-visible { outline: 3px solid #3a6b94; outline-offset: 2px; }
.pfk-modal { position: fixed; z-index: 99995; inset: 0; display: grid; place-items: center; padding: 16px; background: rgb(20 33 44 / .5); }
.pfk-dialog { position: relative; width: min(560px, 100%); max-height: calc(100vh - 32px); overflow-y: auto; padding: 26px 22px 22px; border-radius: 18px; background: #fff; color: #14212c; font-family: var(--wp--preset--font-family--sans, system-ui, sans-serif); font-size: 15.5px; line-height: 1.45; }
.pfk-dialog:focus { outline: 0; }
.pfk-dialog h2 { margin: 0 0 6px; font-size: 22px; }
.pfk-dialog > p { margin: 0 0 14px; color: #3d4b57; }
.pfk-x { position: absolute; top: 10px; right: 10px; width: 40px; height: 40px; border: 0; border-radius: 50%; background: #f1f3f5; font-size: 22px; cursor: pointer; }
.pfk-cats { display: grid; gap: 10px; margin: 0 0 16px; }
.pfk-cat { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 14px 16px; border: 1px solid #dfe5ea; border-radius: 14px; background: #f7f9fb; }
.pfk-cat p { margin: 0; font-size: 14px; color: #3d4b57; }
.pfk-cat .pfk-cat__t { margin-bottom: 2px; font-size: 16px; font-weight: 700; color: #14212c; }
.pfk-always { flex: none; font-size: 13px; font-weight: 600; color: #1f6f43; }
.pfk-sw { flex: none; position: relative; width: 50px; height: 28px; border: 0; border-radius: 99px; background: #c8ced3; cursor: pointer; transition: background .2s; }
.pfk-sw i { position: absolute; top: 3px; left: 3px; width: 22px; height: 22px; border-radius: 50%; background: #fff; transition: transform .2s; }
.pfk-sw[aria-checked="true"] { background: #14212c; }
.pfk-sw[aria-checked="true"] i { transform: translateX(22px); }
.pfk-sw:disabled { opacity: .5; cursor: not-allowed; }
.pfk-gpc { margin: 0; padding: 10px 12px; border-radius: 10px; background: #eef3f8; font-size: 14px; }
.pfk-page { margin: 28px 0; }
.pfk-page h2 { margin: 0 0 6px; }
.pfk-status { margin: 0 0 14px; font-weight: 600; }
.pfk-saved { margin: 10px 0 0; color: #1f6f43; font-weight: 600; min-height: 1.4em; }
.pfk-table { overflow-x: auto; margin: 10px 0 14px; }
.pfk-table table { width: 100%; border-collapse: collapse; font-size: 15px; }
.pfk-table th, .pfk-table td { padding: 10px; border-bottom: 1px solid #e2e6ea; text-align: left; vertical-align: top; }
.pfk-table code { font-size: 13px; word-break: break-word; }
.pfk-note { font-size: 15px; color: #3d4b57; }
@media (max-width: 600px) { .pfk-banner { left: 8px; right: 8px; bottom: 8px; } .pfk-banner .pfk-actions, .pfk-dialog .pfk-actions { width: 100%; } .pfk-actions .pfk-btn { flex: 1 1 auto; } }
@media (prefers-reduced-motion: reduce) { .pfk-sw, .pfk-sw i { transition: none; } }

/* socios: panel en Mi cuenta y bienvenida en /partners/ */
.pfp { display: grid; gap: 18px; color: #14212c; font-size: 16px; }
.pfp h2, .pfp h3 { margin: 0; color: #14212c; letter-spacing: -0.02em; }
.pfp h2 { font-size: clamp(26px, 3.4vw, 34px); font-weight: 600; }
.pfp h3 { font-size: 19px; font-weight: 650; margin-bottom: 12px; }
.pfp p { margin: 0; }
.pfp-k { font-size: 12.5px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #3a6b94; margin-bottom: 6px !important; }
.pfp-meta { margin-top: 8px !important; color: #4a5d6d; font-size: 15px; }
.pfp-pill { display: inline-block; margin-right: 8px; padding: 3px 10px; border-radius: 99px; background: #e5f2ea; color: #1f6f43; font-size: 13px; font-weight: 700; }
.pfp-card { padding: 20px 22px; border: 1px solid #e3e8ed; border-radius: 18px; background: #fff; box-shadow: 0 10px 30px -24px rgb(20 33 44 / .35); }
.pfp-share-card { background: linear-gradient(135deg, #f4f8fb, #fff 60%); }
.pfp-copies { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 12px; }
.pfp-copy label { display: block; margin-bottom: 6px; font-size: 13px; font-weight: 600; color: #4a5d6d; }
.pfp-copy > div { display: flex; border: 1.5px solid #cfdbe5; border-radius: 12px; background: #fff; overflow: hidden; }
.pfp-copy input { flex: 1; min-width: 0; height: 48px; padding: 0 12px; border: 0; background: transparent; font: inherit; font-size: 15px; color: #14212c; }
.pfp-copy--big input { font-size: 19px; font-weight: 700; letter-spacing: .08em; }
.pfp-copy button { flex: none; padding: 0 16px; border: 0; border-left: 1.5px solid #cfdbe5; background: #14212c; color: #fff; font-weight: 600; font-size: 14px; line-height: 1; font-family: inherit; cursor: pointer; }
.pfp-copy button.is-done { background: #1f6f43; }
.pfp-copy button:focus-visible, .pfp-share a:focus-visible, .pfp-btn:focus-visible { outline: 3px solid #3a6b94; outline-offset: 2px; }
.pfp-note { margin-top: 12px !important; font-size: 15px; color: #3d4b57; }
.pfp-share { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 14px; font-size: 14px; color: #4a5d6d; }
.pfp-share a { display: inline-flex; align-items: center; min-height: 38px; padding: 0 14px; border: 1.5px solid #cfdbe5; border-radius: 99px; color: #14212c; font-weight: 600; text-decoration: none; }
.pfp-share a:hover { border-color: #14212c; }
.pfp-kpis { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.pfp-kpis li { display: grid; gap: 4px; padding: 16px 18px; border: 1px solid #e3e8ed; border-radius: 16px; background: #fff; }
.pfp-kpis span { font-size: 13px; font-weight: 600; color: #4a5d6d; }
.pfp-kpis b { font-size: 24px; letter-spacing: -0.02em; }
.pfp-kpis small { font-size: 13px; color: #6b7a87; }
.pfp-kpis .is-hl { border-color: #14212c; background: #14212c; color: #fff; }
.pfp-kpis .is-hl span, .pfp-kpis .is-hl small { color: #c9dbea; }
.pfp-table { overflow-x: auto; }
.pfp-table table { width: 100%; border-collapse: collapse; font-size: 15px; }
.pfp-table th { padding: 10px 12px; border-bottom: 1px solid #e3e8ed; text-align: left; font-size: 13px; font-weight: 600; color: #4a5d6d; }
.pfp-table td { padding: 12px; border-bottom: 1px solid #eef2f5; }
.pfp-st { display: inline-block; padding: 3px 10px; border-radius: 99px; font-size: 13px; font-weight: 600; }
.pfp-st.is-wait { background: #fdf3dc; color: #8a5a00; }
.pfp-st.is-due { background: #e6eef6; color: #24425c; }
.pfp-st.is-ok { background: #e5f2ea; color: #1f6f43; }
.pfp-st.is-no { background: #f6e8e4; color: #a1442f; }
.pfp-cols { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.pfp-steps, .pfp-list { margin: 0 0 14px; padding-left: 20px; display: grid; gap: 8px; font-size: 15px; color: #3d4b57; }
.pfp-steps b { color: #14212c; }
.pfp-pay label { display: block; margin-bottom: 6px; font-size: 13px; font-weight: 600; color: #4a5d6d; }
.pfp-pay > div { display: flex; gap: 8px; }
.pfp-pay input { flex: 1; min-width: 0; height: 46px; padding: 0 12px; border: 1.5px solid #cfdbe5; border-radius: 10px; font: inherit; font-size: 15px; }
.pfp-pay button, .pfp-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 46px; padding: 0 20px; border: 0; border-radius: 99px; background: #14212c; color: #fff; font-weight: 600; font-size: 15px; line-height: 1; font-family: inherit; text-decoration: none; cursor: pointer; }
.pfp-ok { margin-top: 8px !important; color: #1f6f43; font-weight: 600; font-size: 14px; }
.pfp-muted { color: #6b7a87; font-size: 15px; }
.pfp-empty { display: grid; gap: 10px; justify-items: start; padding: 28px; }
.pfp-welcome { display: grid; gap: 14px; }
.pfp-welcome h2 { margin: 0; }
.pfp-welcome .pfp-copy { width: 100%; }
.pfp-where { display: grid; gap: 12px; justify-items: start; margin-top: 6px; padding: 16px 18px; border-radius: 14px; background: #f4f8fb; }
@media (max-width: 760px) {
	.pfp-copies, .pfp-cols { grid-template-columns: minmax(0, 1fr); }
	.pfp-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.pfp-card { padding: 16px; }
	.pfp-table thead { display: none; }
	.pfp-table tr { display: grid; grid-template-columns: 1fr 1fr; gap: 4px 10px; padding: 10px 0; border-bottom: 1px solid #eef2f5; }
	.pfp-table td { padding: 2px 0; border: 0; }
	.pfp-table td::before { content: attr(data-title); display: block; font-size: 12px; color: #6b7a87; }
}

/* Mi Protocolo */
.pfp-alert { margin: 0; padding: 12px 14px; border-radius: 12px; font-size: 15px; font-weight: 600; }
.pfp-alert.is-ok { background: #e5f2ea; color: #1f5a2a; }
.pfp-alert.is-err { background: #f6e8e4; color: #8a3524; }
.pfpr { display: grid; gap: 14px; }
.pfpr-top { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.pfpr-top h3 { margin: 0; }
.pfpr-days { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; }
.pfpr-days li { display: grid; gap: 4px; align-content: start; padding: 14px 12px; border: 1px solid #e3e8ed; border-radius: 14px; background: #fff; text-align: center; }
.pfpr-d { font-size: 18px; font-weight: 700; }
.pfpr-date { font-size: 13.5px; color: #4a5d6d; }
.pfpr-st { margin-top: 6px; font-size: 13.5px; font-weight: 600; color: #6b7a87; }
.pfpr-days .is-ok { border-color: #bfe0cb; background: #f2f9f4; }
.pfpr-days .is-ok .pfpr-st { color: #1f6f43; }
.pfpr-days .is-due { border-color: #14212c; box-shadow: 0 10px 24px -18px rgb(20 33 44 / .6); }
.pfpr-up { margin: 6px 0 0; }
.pfpr-file { position: relative; width: 100%; min-height: 40px; padding: 0 10px; font-size: 14px; overflow: hidden; cursor: pointer; }
.pfpr-file input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.pfpr-file:focus-within { outline: 3px solid #3a6b94; outline-offset: 2px; }
.pfpr-start label { display: block; margin-bottom: 6px; font-size: 14px; font-weight: 600; color: #3d4b57; }
.pfpr-start > div { display: flex; gap: 8px; flex-wrap: wrap; }
.pfpr-start input { height: 44px; padding: 0 12px; border: 1.5px solid #cfdbe5; border-radius: 10px; font: inherit; }
.pfpr-start button { min-height: 44px; padding: 0 16px; border: 1.5px solid #14212c; border-radius: 99px; background: #fff; color: #14212c; font-weight: 600; font-size: 14px; line-height: 1; font-family: inherit; cursor: pointer; }
.pfp { display: grid; gap: 18px; }
.pfp svg { width: 18px; height: 18px; flex: none; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; vertical-align: -3px; }
.pfp-card h3 { margin: 0 0 10px; font-size: 18px; }
.pfp-locked { position: relative; background: #f6f8fa; }
.pfp-lockmsg { display: flex; gap: 14px; align-items: flex-start; margin-bottom: 16px; }
.pfp-lockmsg > svg { width: 30px; height: 30px; color: #3a6b94; }
.pfp-lockmsg h3 { margin: 0 0 6px; }
.pfp-lockmsg p { margin: 0 0 12px; color: #4a5d6d; font-size: 15px; }
.pfpr-days.is-blur { opacity: .55; filter: grayscale(1); pointer-events: none; user-select: none; }
.pfpr-days .is-locked, .pfpr-days .is-next, .pfpr-days .is-missed { background: #f6f8fa; }
.pfpr-days .is-missed { border-color: #ecd3cc; }
.pfpr-days .is-missed .pfpr-st { color: #8a3524; }
.pfpr-days .is-due { grid-column: span 2; text-align: left; }
.pfpr-days .is-due .pfpr-st { color: #1f6f43; }
.pfpr-up { display: grid; gap: 8px; }
.pfpr-up .pfpr-file { display: grid; gap: 4px; min-height: 0; padding: 0; overflow: visible; cursor: default; }
.pfpr-up .pfpr-file input { position: static; opacity: 1; font-size: 14px; }
.pfpr-up label > span { font-size: 13.5px; font-weight: 600; color: #3d4b57; }
.pfpr-com { display: grid; gap: 4px; }
.pfpr-com textarea { width: 100%; padding: 8px 10px; border: 1.5px solid #cfdbe5; border-radius: 10px; font: inherit; font-size: 14px; resize: vertical; }
.pfpr-up .pfp-btn { min-height: 42px; font-size: 14px; }
.pfpr-note { margin: 6px 0 0; font-size: 13.5px; color: #4a5d6d; font-style: italic; text-align: left; }
.pfp-books { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.pfp-books li { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border: 1px solid #e3e8ed; border-radius: 14px; background: #fff; }
.pfp-books li > svg { width: 24px; height: 24px; color: #3a6b94; }
.pfp-books li > div { flex: 1; display: grid; gap: 2px; }
.pfp-books li span { font-size: 14px; color: #6b7a87; }
.pfp-books .is-locked { opacity: .6; }
.pfp-books .pfp-btn { min-height: 40px; font-size: 14px; }
@media (max-width: 760px) { .pfpr-days { grid-template-columns: repeat(2, minmax(0, 1fr));  } .pfpr-days .is-due { grid-column: 1 / -1; } }

/* ---------- Reseñas de compras verificadas (pepfine/reviews) ---------- */
.pfr { padding: 56px 16px; background: #fcfbf7; color: #14212c; }
.pfr-wrap { max-width: 1080px; margin: 0 auto; display: grid; gap: 22px; }
.pfr-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 18px; flex-wrap: wrap; }
.pfr-k { margin: 0 0 6px; font-size: 13px; letter-spacing: .08em; text-transform: uppercase; color: #5c6b77; }
.pfr h2 { margin: 0; font-family: Georgia, 'Times New Roman', serif; font-weight: 400; font-size: clamp(28px, 4vw, 40px); line-height: 1.15; }
.pfr-sum { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.pfr-sum b { font-size: 34px; line-height: 1; }
.pfr-sum span:last-child { font-size: 14px; color: #5c6b77; }
.pfr-stars { position: relative; display: inline-block; width: 92px; height: 18px; vertical-align: middle;
	background: linear-gradient(#d9dee3, #d9dee3); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 24'%3E%3Cg%3E%3Cpath id='s' d='M12 1.8l3.1 6.4 7 1-5.1 4.9 1.2 7L12 17.8l-6.2 3.3 1.2-7L1.9 9.2l7-1z'/%3E%3Cuse href='%23s' x='24'/%3E%3Cuse href='%23s' x='48'/%3E%3Cuse href='%23s' x='72'/%3E%3Cuse href='%23s' x='96'/%3E%3C/g%3E%3C/svg%3E") 0 0 / 100% 100% no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 24'%3E%3Cg%3E%3Cpath id='s' d='M12 1.8l3.1 6.4 7 1-5.1 4.9 1.2 7L12 17.8l-6.2 3.3 1.2-7L1.9 9.2l7-1z'/%3E%3Cuse href='%23s' x='24'/%3E%3Cuse href='%23s' x='48'/%3E%3Cuse href='%23s' x='72'/%3E%3Cuse href='%23s' x='96'/%3E%3C/g%3E%3C/svg%3E") 0 0 / 100% 100% no-repeat; }
.pfr-stars > span { position: absolute; inset: 0 auto 0 0; background: #e0a526; }
.pfr-dist { display: grid; gap: 6px; max-width: 420px; }
.pfr-dist p { display: grid; grid-template-columns: 34px 1fr 28px; align-items: center; gap: 10px; margin: 0; font-size: 13px; color: #5c6b77; }
.pfr-dist i { display: block; height: 8px; border-radius: 99px; background: #e7ebef; overflow: hidden; }
.pfr-dist i b { display: block; height: 100%; background: #e0a526; }
.pfr-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 14px; }
.pfr-item { display: grid; gap: 8px; align-content: start; padding: 18px; border: 1px solid #e6e2d8; border-radius: 16px; background: #fff; }
.pfr-item[hidden] { display: none; }
.pfr-item h3 { margin: 0; font-size: 16px; }
.pfr-text { margin: 0; font-size: 15px; line-height: 1.55; color: #33414d; }
.pfr-photo img { display: block; width: 100%; max-height: 240px; object-fit: cover; border-radius: 12px; }
.pfr-by { margin: 0; font-size: 13px; color: #5c6b77; }
.pfr-ver { color: #1f6b3a; font-weight: 600; }
.pfr-more { justify-self: center; min-height: 44px; padding: 0 22px; border: 1.5px solid #14212c; border-radius: 99px; background: #fff; color: #14212c; font-weight: 600; font-size: 15px; line-height: 1; font-family: inherit; cursor: pointer; }
.pfr-empty { margin: 0; color: #5c6b77; }
.pfr-write { border: 1px solid #e6e2d8; border-radius: 16px; background: #fff; }
.pfr-write summary { padding: 16px 18px; font-weight: 700; cursor: pointer; }
.pfr-form { display: grid; gap: 14px; padding: 0 18px 18px; }
.pfr-form p { margin: 0; }
.pfr-form label { display: block; margin-bottom: 6px; font-size: 14px; font-weight: 600; color: #3d4b57; }
.pfr-form input:not([type=radio]):not([type=file]), .pfr-form textarea { width: 100%; box-sizing: border-box; padding: 11px 12px; border: 1.5px solid #cfdbe5; border-radius: 10px; font: inherit; background: #fff; }
.pfr-two { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.pfr-rate { display: inline-flex; flex-direction: row-reverse; justify-content: flex-end; gap: 2px; margin: 0; padding: 0; border: 0; }
.pfr-rate legend { width: 100%; margin-bottom: 4px; font-size: 14px; font-weight: 600; color: #3d4b57; }
.pfr-rate input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.pfr-rate label { margin: 0; font-size: 32px; line-height: 1; color: #d9dee3; cursor: pointer; }
.pfr-rate label:hover, .pfr-rate label:hover ~ label, .pfr-rate input:checked ~ label { color: #e0a526; }
.pfr-rate input:focus-visible + label { outline: 2px solid #14212c; outline-offset: 2px; border-radius: 4px; }
.pfr-legal { font-size: 12.5px; color: #5c6b77; }
.pfr-line { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; color: inherit; text-decoration: none; }
@media (max-width: 640px) { .pfr { padding: 40px 16px; } .pfr-two { grid-template-columns: 1fr; } }
.pfr-form .pfp-btn { justify-self: start; padding: 0 28px; }

/* ---------- Avísame cuando vuelva ---------- */
.pfs { margin: 12px 0 0; padding: 16px; border: 1px solid #e6e2d8; border-radius: 14px; background: #fcfbf7; color: #14212c; }
.pfs[hidden] { display: none; }
.pfs-h { margin: 0; font-weight: 700; font-size: 16px; }
.pfs-t { margin: 4px 0 10px; font-size: 14px; color: #5c6b77; }
.pfs-f { display: flex; gap: 8px; }
.pfs-f[hidden] { display: none; }
.pfs-f input[type=email] { flex: 1; min-width: 0; height: 46px; padding: 0 14px; border: 1.5px solid #cfdbe5; border-radius: 99px; font: inherit; background: #fff; }
.pfs-f button { min-height: 46px; padding: 0 20px; border: 0; border-radius: 99px; background: #14212c; color: #fff; font-weight: 600; font-size: 15px; line-height: 1; font-family: inherit; cursor: pointer; }
.pfs-f button:disabled { opacity: .6; }
.pfs-hp, .pfs-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.pfs-msg { margin: 8px 0 0; font-size: 14px; font-weight: 600; }
.pfs-msg:empty { display: none; }

/* ======================================================================
   Loading: spinner on buttons, top progress bar, skeleton shimmer
   ====================================================================== */
.is-loading { position: relative !important; color: transparent !important; pointer-events: none; }
.is-loading > * { visibility: hidden; }
.is-loading::after { content: ""; position: absolute; inset: 0; margin: auto; width: 18px; height: 18px; border-radius: 50%; border: 2.4px solid rgb(255 255 255 / .35); border-top-color: #fff; animation: pfc-spin .7s linear infinite; }
.pfx-btn--ghost.is-loading::after, .pfm-btn--ghost.is-loading::after, .pfs-f button.is-loading::after { border-color: rgb(20 33 44 / .2); border-top-color: #14212c; }
@keyframes pfc-spin { to { transform: rotate(360deg); } }
.pfc-progress { position: fixed; z-index: 100000; top: 0; left: 0; height: 3px; width: 0; background: linear-gradient(90deg, #3a6b94, #14212c); box-shadow: 0 0 8px rgb(58 107 148 / .5); opacity: 0; pointer-events: none; }
.pfc-progress.is-on { opacity: 1; animation: pfc-prog 8s cubic-bezier(.08,.8,.2,1) forwards; }
.pfc-progress.is-done { opacity: 0; width: 100%; transition: opacity .3s .1s, width .2s; }
@keyframes pfc-prog { 0% { width: 0; } 20% { width: 45%; } 60% { width: 78%; } 100% { width: 92%; } }
.pfc-skel, .pfc-skel-img { background: linear-gradient(100deg, #eef1f4 30%, #f8f9fb 50%, #eef1f4 70%) 0 0 / 300% 100% !important; animation: pfc-shimmer 1.3s ease-in-out infinite; }
@keyframes pfc-shimmer { from { background-position: 100% 0; } to { background-position: 0 0; } }
.pfc-skel { border-radius: 10px; color: transparent !important; min-height: 1em; }
@media (prefers-reduced-motion: reduce) { .pfc-progress.is-on, .pfc-skel, .pfc-skel-img { animation: none; } .pfc-progress.is-on { width: 70%; } }

/* ======================================================================
   Shared form look (partners, contact, login, phone)
   ====================================================================== */
.pfx-f { display: grid; gap: 7px; margin: 0; min-width: 0; }
.pfx-f > label, .pfx-pw > label { font-size: 15px; font-weight: 600; color: #24333f; }
.pfx-f label small, .pfx-pw label small { font-weight: 400; color: #5f6b75; }
.pfx-f abbr { color: #a1442f; text-decoration: none; }
.pfx-f input:not([type=checkbox]):not([type=radio]), .pfx-f select, .pfx-f textarea, .pfx-pw input { width: 100%; box-sizing: border-box; min-height: 52px; padding: 12px 14px; border: 1.5px solid #d3dce4; border-radius: 12px; background: #fff; color: #14212c; font: inherit; font-size: 16px; transition: border-color .15s, box-shadow .15s; }
.pfx-f textarea { min-height: 120px; resize: vertical; }
.pfx-f input:focus, .pfx-f select:focus, .pfx-f textarea:focus, .pfx-pw input:focus { outline: 0; border-color: #3a6b94; box-shadow: 0 0 0 3px rgb(58 107 148 / .16); }
.pfx-f [aria-invalid="true"], .pfx-pw [aria-invalid="true"] { border-color: #a1442f !important; }
.pfx-two { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.pfx-err { margin: 0; padding: 12px 14px; border-radius: 12px; background: #f9ebe7; color: #8a3524; font-size: 15px; font-weight: 600; }
.pfx-fine { margin: 0; font-size: 13.5px; color: #5f6b75; text-align: center; }
.pfx-fine a { color: inherit; }
.pfx-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 52px; padding: 0 26px; border: 1.5px solid #14212c; border-radius: 99px; background: #14212c; color: #fff !important; font-weight: 600; font-size: 16px; line-height: 1; font-family: inherit; text-decoration: none; cursor: pointer; transition: background .15s, transform .15s; }
.pfx-btn:hover { background: #000; transform: translateY(-1px); }
.pfx-btn:focus-visible { outline: 3px solid #3a6b94; outline-offset: 2px; }
.pfx-btn--ghost { background: transparent; color: #14212c !important; }
.pfx-btn--ghost:hover { background: #14212c; color: #fff !important; }
.pfx-btn--block { width: 100%; }
.pfx-pwwrap, .pfx-pw > span { position: relative; display: block; }
.pfx-pwwrap input, .pfx-pw input { padding-right: 76px !important; }
.pfx-eye { position: absolute; top: 50%; right: 8px; transform: translateY(-50%); min-height: 36px; padding: 0 12px; border: 0; border-radius: 8px; background: #eef3f7; color: #24333f; font-weight: 600; font-size: 13px; line-height: 1; font-family: inherit; cursor: pointer; }
.pfc-field-msg { display: block; font-size: 14px; font-weight: 600; color: #a1442f; }
.pfc-field-msg:empty { display: none; }
.pfc-fix { padding: 0; border: 0; background: none; color: #14212c; font: inherit; font-weight: 700; text-decoration: underline; cursor: pointer; }

/* phone with country code */
.pfc-tel { display: flex; align-items: stretch; min-height: 52px; border: 1.5px solid #d3dce4; border-radius: 12px; background: #fff; overflow: hidden; transition: border-color .15s, box-shadow .15s; }
.pfc-tel:focus-within { border-color: #3a6b94; box-shadow: 0 0 0 3px rgb(58 107 148 / .16); }
.pfc-tel__ccw { position: relative; flex: none; display: flex; align-items: center; gap: 6px; padding: 0 30px 0 12px; border-right: 1.5px solid #e3e9ee; background: #f6f8fa; font-size: 16px; font-weight: 600; color: #14212c; white-space: nowrap; }
.pfc-tel__ccw::after { content: ""; position: absolute; right: 12px; top: 50%; width: 7px; height: 7px; border-right: 2px solid #5f6b75; border-bottom: 2px solid #5f6b75; transform: translateY(-70%) rotate(45deg); pointer-events: none; }
.pfc-tel__cc { position: absolute; inset: 0; width: 100%; opacity: 0; cursor: pointer; font-size: 16px; }
.pfc-tel input[type=tel] { flex: 1; min-width: 0; min-height: 0 !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; padding: 0 14px !important; font: inherit; font-size: 16px; background: transparent; color: #14212c; outline: 0; }
.pfc-tel:has([aria-invalid="true"]) { border-color: #a1442f; }
.pfc-tel__cc:focus-visible + * , .pfc-tel__ccw:focus-within { outline: 2px solid #3a6b94; outline-offset: -2px; }

/* ======================================================================
   Modal (newsletter code / phone)
   ====================================================================== */
html.pfm-open { overflow: hidden; }
.pfm { position: fixed; inset: 0; z-index: 99990; display: grid; place-items: center; padding: 16px; background: rgb(14 22 30 / .55); animation: pfm-in .2s ease; }
@keyframes pfm-in { from { opacity: 0; } }
.pfm-d { position: relative; width: min(460px, 100%); max-height: calc(100vh - 32px); overflow: auto; box-sizing: border-box; padding: 34px 28px 26px; border-radius: 24px; background: #fff; color: #14212c; text-align: center; box-shadow: 0 40px 90px -30px rgb(0 0 0 / .45); animation: pfm-up .28s cubic-bezier(.2,.8,.2,1); outline: 0; }
@keyframes pfm-up { from { transform: translateY(16px) scale(.98); opacity: 0; } }
.pfm-x { position: absolute; top: 12px; right: 12px; width: 40px; height: 40px; border: 0; border-radius: 50%; background: #f1f4f7; color: #14212c; font-size: 16px; cursor: pointer; }
.pfm-k { margin: 0 0 6px; font-size: 13px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: #5f6b75; }
.pfm-d h2 { margin: 0 0 10px; font-size: 26px; line-height: 1.15; font-weight: 600; letter-spacing: -0.02em; }
.pfm-d p { margin: 0 0 12px; font-size: 15.5px; line-height: 1.5; color: #3d4b57; }
.pfm-code { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: 14px 0 10px; padding: 12px 12px 12px 18px; border: 2px dashed #14212c; border-radius: 16px; background: #f4f8fb; }
.pfm-code b { font-size: 24px; letter-spacing: .08em; word-break: break-all; text-align: left; }
.pfm-copy { flex: none; min-height: 40px; padding: 0 16px; border: 0; border-radius: 99px; background: #14212c; color: #fff; font-weight: 600; font-size: 14px; line-height: 1; font-family: inherit; cursor: pointer; }
.pfm-small { font-size: 14px !important; color: #5f6b75 !important; }
.pfm-btns { display: grid; gap: 8px; margin-top: 16px; }
.pfm-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 50px; padding: 0 22px; border: 1.5px solid #14212c; border-radius: 99px; background: #14212c; color: #fff; font-weight: 600; font-size: 16px; line-height: 1; font-family: inherit; cursor: pointer; }
.pfm-btn--ghost { background: #fff; color: #14212c; }
.pfm-status { min-height: 0; margin: 10px 0 0 !important; font-size: 14px !important; font-weight: 600; color: #1f5a2a !important; }
.pfm-status:empty { display: none; }
.pfm-status.is-err { color: #a1442f !important; }
.pfm-phone { display: grid; gap: 10px; margin-top: 18px; padding-top: 18px; border-top: 1px solid #e8edf1; text-align: left; }
.pfm-ph-t { text-align: center; }
.pfm-lbl { font-size: 14px; font-weight: 600; }
.pfm-check { display: flex; gap: 10px; align-items: flex-start; font-size: 13.5px; line-height: 1.45; color: #3d4b57; }
.pfm-check input { margin-top: 3px; width: 18px; height: 18px; accent-color: #14212c; }
.pfm-ok { margin: 4px 0 0 !important; padding: 14px; border-radius: 12px; background: #e5f2ea; color: #1f5a2a !important; font-weight: 600; text-align: center; }

/* ======================================================================
   /partners/ page
   ====================================================================== */
.pfx { --pfx-ink: #14212c; --pfx-muted: #4d5d6b; --pfx-line: #e1e6eb; --pfx-blue: #c9dbea; max-width: 1180px; margin: 0 auto; padding: 24px 16px 96px; display: grid; gap: clamp(56px, 8vw, 96px); color: var(--pfx-ink); font-size: 17px; line-height: 1.55; }
.pfx h1 em, .pfx h2 em, .pfx h3 em, .pfct h2 em, .pflog h2 em { font-family: "Instrument Serif", Georgia, serif; font-style: italic; font-weight: 400; }
.pfx-k { margin: 0 0 8px; font-size: 13px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--pfx-muted, #4d5d6b); }
.pfx h2 { margin: 0; font-size: clamp(30px, 4vw, 46px); line-height: 1.05; font-weight: 500; letter-spacing: -0.035em; }
.pfx-hero { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: clamp(24px, 4vw, 56px); align-items: center; padding: clamp(28px, 5vw, 60px); border-radius: 32px; background: radial-gradient(120% 100% at 100% 0%, #f3f8fc 0%, #d6e4f0 50%, #b3cbe0 100%); }
.pfx-pill { justify-self: start; display: inline-block; margin: 0 0 16px; padding: 7px 14px; border-radius: 99px; background: rgb(255 255 255 / .7); font-size: 14px; font-weight: 600; }
.pfx-hero h1 { margin: 0 0 16px; font-size: clamp(36px, 5.2vw, 62px); line-height: 1.02; font-weight: 500; letter-spacing: -0.04em; text-align: left; text-wrap: balance; color: var(--pfx-ink); }
.pfx-lede { margin: 0 0 22px; max-width: 48ch; font-size: 18px; color: #2c3d4c; }
.pfx-ctas { display: flex; flex-wrap: wrap; gap: 10px; }
.pfx-facts { list-style: none; margin: 26px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.pfx-facts li { display: grid; padding: 10px 16px; border-radius: 14px; background: rgb(255 255 255 / .6); line-height: 1.2; }
.pfx-facts b { font-size: 20px; }
.pfx-facts span { font-size: 13px; color: #3d4b57; }
.pfx-hero__card { display: grid; gap: 12px; padding: 24px; border-radius: 24px; background: #fff; box-shadow: 0 30px 60px -30px rgb(20 33 44 / .4); }
.pfx-mock__k { margin: 0; font-size: 13px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--pfx-muted); }
.pfx-mock__row { display: grid; gap: 4px; padding: 12px 14px; border-radius: 14px; background: #f4f7fa; }
.pfx-mock__row small { font-size: 12.5px; color: var(--pfx-muted); }
.pfx-mock__row code { font: 600 15px/1.3 ui-monospace, SFMono-Regular, Menlo, monospace; color: var(--pfx-ink); word-break: break-all; }
.pfx-mock__code { font-size: 20px !important; letter-spacing: .1em; }
.pfx-mock__calc { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 14px; border-radius: 14px; background: #14212c; color: #fff; font-size: 15px; }
.pfx-mock__calc b { font-size: 20px; color: var(--pfx-blue); }
.pfx-mock__calc i { font-style: normal; opacity: .6; }
.pfx-mock__note { margin: 0; font-size: 12.5px; color: var(--pfx-muted); text-align: center; }
.pfx-steps ol { list-style: none; margin: 28px 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; counter-reset: s; }
.pfx-steps li { display: grid; gap: 8px; align-content: start; padding: 24px; border: 1px solid var(--pfx-line); border-radius: 22px; background: #fff; }
.pfx-steps i { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 14px; background: #e6eff6; }
.pfx-steps svg, .pfx-get svg { width: 22px; height: 22px; fill: none; stroke: #14212c; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.pfx-steps b { margin-top: 6px; font-size: 19px; }
.pfx-steps p { margin: 0; font-size: 15.5px; color: #3d4b57; }
.pfx-apply { scroll-margin-top: 90px; display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(24px, 5vw, 64px); align-items: start; }
.pfx-apply__head { position: sticky; top: 110px; }
.pfx-get { list-style: none; margin: 22px 0 0; padding: 0; display: grid; gap: 12px; }
.pfx-get li { display: flex; align-items: center; gap: 10px; font-size: 16.5px; }
.pfx-get svg { flex: none; width: 24px; height: 24px; padding: 4px; border-radius: 50%; background: #14212c; stroke: #c9dbea; stroke-width: 2.6; box-sizing: border-box; }
.pfx-form, .pfx-card { display: grid; gap: 16px; padding: clamp(22px, 3.4vw, 36px); border: 1px solid var(--pfx-line, #e1e6eb); border-radius: 26px; background: #fff; box-shadow: 0 40px 80px -50px rgb(20 33 44 / .45); }
.pfx-more { border: 1px solid #e6ebf0; border-radius: 14px; background: #fafbfc; }
.pfx-more summary { padding: 14px 16px; font-weight: 600; cursor: pointer; }
.pfx-more summary small { font-weight: 400; color: #5f6b75; }
.pfx-more[open] { display: grid; gap: 14px; padding: 0 16px 16px; }
.pfx-more[open] summary { margin: 0 -16px; }
.pfx-agree { display: flex; gap: 10px; align-items: flex-start; font-size: 14.5px; line-height: 1.5; color: #3d4b57; }
.pfx-agree input { flex: none; width: 20px; height: 20px; margin-top: 2px; accent-color: #14212c; }
.pfx-card h3 { margin: 0; font-size: clamp(26px, 3vw, 34px); line-height: 1.1; font-weight: 500; letter-spacing: -0.03em; }
.pfx-card > p { margin: 0; color: #3d4b57; }
.pfx-done { text-align: center; }
.pfx-pass { display: grid; gap: 12px; padding: 20px; border-radius: 18px; background: linear-gradient(135deg, #eaf2f9, #f8fbfd); border: 1.5px solid #c9dbea; }
.pfx-pass h4 { margin: 0; font-size: 20px; }
.pfx-pass p { margin: 0; font-size: 15px; color: #3d4b57; }
.pfx-pw { display: grid; gap: 6px; }
.pfx-where { display: grid; gap: 12px; justify-items: start; padding: 18px; border-radius: 18px; background: #f3f7fa; }
.pfx-where p { margin: 0; font-size: 15px; }
.pfx-rules { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.pfx-rule { padding: 20px 22px; border-radius: 20px; background: #f3f7fa; }
.pfx-rule b { font-size: 16.5px; }
.pfx-rule p { margin: 6px 0 0; font-size: 15px; color: #3d4b57; }
.pfx-rule a { color: inherit; font-weight: 600; }
.pfx-faq { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(24px, 5vw, 64px); align-items: start; }
.pfx-faq > div { display: grid; gap: 10px; }
.pfx-faq details { border: 1px solid var(--pfx-line); border-radius: 16px; background: #fff; }
.pfx-faq summary { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 18px 20px; font-weight: 600; cursor: pointer; list-style: none; }
.pfx-faq summary::-webkit-details-marker { display: none; }
.pfx-faq summary i { flex: none; width: 12px; height: 12px; border-right: 2px solid #14212c; border-bottom: 2px solid #14212c; transform: rotate(45deg) translateY(-3px); transition: transform .2s; }
.pfx-faq details[open] summary i { transform: rotate(-135deg); }
.pfx-faq details p { margin: 0; padding: 0 20px 18px; font-size: 15.5px; color: #3d4b57; }
.pfx-welcome .pfp-copy, .pfx-welcome .pfp-share { margin: 0; }
@media (max-width: 900px) {
	.pfx-hero, .pfx-apply, .pfx-faq { grid-template-columns: minmax(0, 1fr); }
	.pfx-apply__head { position: static; }
	.pfx-steps ol, .pfx-rules { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 600px) {
	.pfx { padding-top: 12px; }
	.pfx-hero { border-radius: 24px; padding: 24px 18px; }
	.pfx-two { grid-template-columns: minmax(0, 1fr); }
	.pfx-ctas .pfx-btn { flex: 1 1 100%; }
}

/* ======================================================================
   Contact form
   ====================================================================== */
.pfct { display: grid; gap: 16px; padding: clamp(22px, 3.4vw, 34px); border: 1px solid #e1e6eb; border-radius: 26px; background: #fff; box-shadow: 0 40px 80px -50px rgb(20 33 44 / .45); color: #14212c; scroll-margin-top: 100px; }
.pfct h2 { margin: 0; font-size: clamp(28px, 3vw, 36px); line-height: 1.1; font-weight: 500; letter-spacing: -0.03em; text-align: left; }
.pfct-sub { margin: -6px 0 0; color: #4d5d6b; }
.pfct--ok { text-align: center; justify-items: center; }
.pfct-ok-ic { display: grid; place-items: center; width: 56px; height: 56px; border-radius: 50%; background: #e5f2ea; color: #1f5a2a; font-size: 26px; font-weight: 700; }
.pfct--ok h2 { text-align: center; }
.pfct--ok p { margin: 0; color: #3d4b57; }
.pfct-alt a { color: #1f6b3a; font-weight: 600; }
@media (max-width: 600px) { .pfct .pfx-two { grid-template-columns: minmax(0, 1fr); } }

/* ======================================================================
   Mi cuenta: entrar / crear cuenta, saludo y tarjeta del usuario
   ====================================================================== */
.pflog { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); max-width: 1000px; margin: 0 auto; border: 1px solid #e1e6eb; border-radius: 28px; overflow: hidden; background: #fff; box-shadow: 0 50px 100px -60px rgb(20 33 44 / .5); color: #14212c; }
.pfl-side { display: grid; align-content: start; gap: 18px; padding: clamp(28px, 4vw, 48px); background: radial-gradient(120% 100% at 0% 0%, #f3f8fc 0%, #d6e4f0 55%, #b3cbe0 100%); }
.pfl-brand { margin: 0; font-family: "Instrument Serif", Georgia, serif; font-size: 34px; line-height: 1; }
.pfl-side h2 { margin: 0; font-size: clamp(28px, 3vw, 38px); line-height: 1.08; font-weight: 500; letter-spacing: -0.03em; text-align: left; }
.pfl-side ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.pfl-side li { display: flex; gap: 10px; align-items: flex-start; font-size: 16px; line-height: 1.4; }
.pfl-side svg { flex: none; width: 22px; height: 22px; padding: 4px; box-sizing: border-box; border-radius: 50%; background: #14212c; fill: none; stroke: #c9dbea; stroke-width: 2.8; stroke-linecap: round; stroke-linejoin: round; }
.pfl-help { margin: 8px 0 0; font-size: 14px; color: #2c3d4c; }
.pfl-help a { color: inherit; font-weight: 600; }
.pfl-main { display: grid; align-content: start; gap: 16px; padding: clamp(26px, 4vw, 48px); }
.pfl-tabs { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; padding: 4px; border-radius: 99px; background: #eef2f5; }
.pfl-tabs button { min-height: 44px; border: 0; border-radius: 99px; background: none; color: #4d5d6b; font-weight: 600; font-size: 15px; line-height: 1; font-family: inherit; cursor: pointer; }
.pfl-tabs button[aria-selected="true"] { background: #fff; color: #14212c; box-shadow: 0 2px 8px rgb(20 33 44 / .12); }
.pfl-main section { display: grid; gap: 16px; }
.pfl-main section[hidden] { display: none; }
.pfl-h { margin: 6px 0 0 !important; font-size: clamp(30px, 3.4vw, 40px) !important; line-height: 1.05; font-weight: 500 !important; letter-spacing: -0.03em; text-align: left !important; }
.pfl-sub { margin: -8px 0 4px; color: #4d5d6b; }
.pfl-form { display: grid; gap: 14px; margin: 0 !important; padding: 0 !important; border: 0 !important; }
.pfl-row { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; font-size: 15px; }
.pfl-row a { color: #3a6b94; font-weight: 600; }
.pfl-rem { display: inline-flex; gap: 8px; align-items: center; cursor: pointer; }
.pfl-rem input { width: 18px; height: 18px; accent-color: #14212c; }
.pfl-note { margin: 0; font-size: 14px; color: #5f6b75; }
.pfa-hello { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; flex-wrap: wrap; margin-bottom: 4px; padding: 26px 28px; border-radius: 24px; background: radial-gradient(120% 140% at 100% 0%, #f3f8fc 0%, #d6e4f0 60%, #c2d6e7 100%); }
.pfa-hello h2 { margin: 0 0 4px; font-size: clamp(28px, 3.4vw, 40px); line-height: 1.05; font-weight: 500; letter-spacing: -0.03em; }
.pfa-hello p { margin: 0; color: #2c3d4c; }
.pfa-k { margin: 0 0 6px !important; font-size: 13px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: #3d4b57 !important; }
.pfa-shop { display: inline-flex; align-items: center; min-height: 44px; padding: 0 20px; border-radius: 99px; background: #14212c; color: #fff !important; font-weight: 600; text-decoration: none; }
.pfa-me { display: flex; align-items: center; gap: 12px; padding: 14px; border: 1px solid #e3e8ed; border-radius: 18px; background: #fff; min-width: 0; }
.pfa-me__av { flex: none; display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: #14212c; color: #fff; font-weight: 700; }
.pfa-me b { display: block; font-size: 15.5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pfa-me small { display: block; font-size: 13px; color: #5f6b75; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pfa-me > span:last-child { min-width: 0; }
@media (max-width: 800px) {
	.pflog { grid-template-columns: minmax(0, 1fr); border-radius: 22px; }
	.pfl-side { padding: 24px 22px; gap: 12px; }
	.pfl-side ul { display: none; }
	.pfa-hello { padding: 20px; }
}

/* /partners/: cómo te pagamos */
.pfx-payout { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(20px, 4vw, 56px); align-items: start; padding: clamp(24px, 4vw, 48px); border-radius: 28px; background: #14212c; color: #fff; }
.pfx-payout .pfx-k { color: #c9dbea; }
.pfx-payout h2 { color: #fff; }
.pfx-payout > div > p:last-child { margin: 14px 0 0; color: #d3dee8; font-size: 16.5px; }
.pfx-payout ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.pfx-payout li { display: grid; align-content: start; gap: 2px; padding: 16px 18px; border-radius: 16px; background: rgb(255 255 255 / .08); border: 1px solid rgb(255 255 255 / .12); }
.pfx-payout li b { font-size: 16.5px; }
.pfx-payout li span { font-size: 14.5px; color: #c7d3de; }
.pfx-payout li:last-child { grid-column: 1 / -1; }
.pfx-payout__note { grid-column: 1 / -1; margin: 0; padding: 14px 18px; border-radius: 14px; background: #c9dbea; color: #14212c; font-size: 15.5px; }
.pfp-select { width: 100%; min-height: 46px; margin-bottom: 10px; padding: 0 12px; border: 1.5px solid #cfdbe5; border-radius: 10px; background: #fff; font: inherit; font-size: 15px; }
@media (max-width: 900px) { .pfx-payout { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 560px) { .pfx-payout ul { grid-template-columns: minmax(0, 1fr); } }

/* Panel de socio: métodos de pago */
.pfpo { margin-top: 18px; }
.pfpo-sub { margin: 0 0 14px; color: #3d4b57; font-size: 15px; }
.pfpo-list { list-style: none; margin: 0 0 14px; padding: 0; display: grid; gap: 10px; }
.pfpo-list li { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; padding: 14px 16px; border: 1px solid #e3e8ed; border-radius: 14px; background: #fff; }
.pfpo-list li.is-main { border-color: #14212c; box-shadow: 0 0 0 1px #14212c inset; }
.pfpo-list small { display: block; margin-top: 2px; font-size: 14px; color: #4a5d6d; word-break: break-word; }
.pfpo-badge { display: inline-block; padding: 2px 9px; border-radius: 99px; background: #14212c; color: #fff; font-size: 12px; font-weight: 600; vertical-align: 1px; }
.pfpo-acts { display: flex; gap: 14px; font-size: 14px; }
.pfpo-acts a { color: #14212c; font-weight: 600; }
.pfpo-acts .pfpo-del { color: #a1442f; }
.pfpo-empty { margin: 0 0 12px; padding: 14px 16px; border-radius: 12px; background: #fff7e6; color: #6b4b00; font-size: 15px; }
.pfpo-add { border: 1.5px dashed #b9c8d6; border-radius: 14px; background: #fafcfd; }
.pfpo-add summary { padding: 14px 16px; font-weight: 700; cursor: pointer; }
.pfpo-form { display: grid; gap: 12px; padding: 0 16px 16px; }
.pfpo-form label { display: block; margin-bottom: 5px; font-size: 14px; font-weight: 600; color: #3d4b57; }
.pfpo-form input:not([type=checkbox]), .pfpo-form select, .pfpo-form textarea { width: 100%; box-sizing: border-box; min-height: 46px; padding: 10px 12px; border: 1.5px solid #cfdbe5; border-radius: 10px; background: #fff; font: inherit; font-size: 15px; }
.pfpo-form small { display: block; margin-top: 4px; font-size: 12.5px; color: #5f6b75; }
.pfpo-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 12px; }
.pfpo-fields[hidden] { display: none; }
.pfpo-fields p { margin: 0 0 10px; }
.pfpo-fields p:only-child, .pfpo-fields p:has(textarea) { grid-column: 1 / -1; }
.pfpo-main { display: flex !important; gap: 8px; align-items: center; font-weight: 500 !important; }
.pfpo-main input { width: 18px; height: 18px; accent-color: #14212c; }
.pfpo-form .pfp-btn { justify-self: start; }
.pfpo-lock { margin: 0; font-size: 13px; color: #5f6b75; }
@media (max-width: 600px) { .pfpo-fields { grid-template-columns: minmax(0, 1fr); } }

/* Mi cuenta: completa tu perfil */
.pfpf { margin: 4px 0 18px; padding: 22px; border: 1px solid #e3e8ed; border-radius: 22px; background: #fff; color: #14212c; }
.pfpf .pfp-alert { margin-bottom: 12px; }
.pfpf-head { display: flex; justify-content: space-between; align-items: center; gap: 16px; }
.pfpf-k { margin: 0 0 4px; font-size: 12.5px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: #3a6b94; }
.pfpf h3 { margin: 0 0 4px; font-size: 24px; font-weight: 600; letter-spacing: -0.02em; }
.pfpf h3 em { font-style: normal; color: #3a6b94; }
.pfpf-head p { margin: 0; font-size: 14.5px; color: #4a5d6d; }
.pfpf-ring { flex: none; display: grid; place-items: center; width: 74px; height: 74px; border-radius: 50%; background: conic-gradient(#14212c calc(var(--p) * 1%), #e6edf3 0); }
.pfpf-ring b { display: grid; place-items: center; width: 58px; height: 58px; border-radius: 50%; background: #fff; font-size: 17px; }
.pfpf-bar { height: 8px; margin: 16px 0 14px; border-radius: 99px; background: #e6edf3; overflow: hidden; }
.pfpf-bar i { display: block; height: 100%; border-radius: 99px; background: linear-gradient(90deg, #3a6b94, #14212c); transition: width .6s ease; }
.pfpf-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.pfpf-list > li { border: 1px solid #e8edf2; border-radius: 14px; background: #fafcfd; }
.pfpf-list > li.is-done { display: flex; align-items: center; gap: 12px; padding: 12px 14px; background: #f3faf5; border-color: #d5ebdc; }
.pfpf-list > li.is-gift { border-color: #14212c; box-shadow: 0 0 0 1px #14212c inset; background: #fff; }
.pfpf-list summary { display: flex; align-items: center; gap: 12px; padding: 12px 14px; cursor: pointer; list-style: none; }
.pfpf-list summary::-webkit-details-marker { display: none; }
.pfpf-list summary div, .pfpf-list li.is-done div { flex: 1; min-width: 0; }
.pfpf-list b { display: block; font-size: 15.5px; }
.pfpf-list small { display: block; font-size: 13.5px; color: #4a5d6d; }
.pfpf-ic { flex: none; display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: #e6edf3; color: #14212c; font-weight: 700; }
.is-done .pfpf-ic { background: #1f6b3a; color: #fff; }
.pfpf-pts { flex: none; padding: 5px 10px; border-radius: 99px; background: #14212c; color: #fff; font-size: 13px; font-weight: 700; }
.pfpf-f { display: grid; gap: 10px; padding: 0 14px 14px 56px; }
.pfpf-f input[type=date], .pfpf-f select, .pfpf-f input[type=file] { width: 100%; max-width: 360px; min-height: 46px; padding: 8px 12px; box-sizing: border-box; border: 1.5px solid #cfdbe5; border-radius: 10px; background: #fff; font: inherit; font-size: 15px; }
.pfpf-f .pfc-tel { max-width: 420px; }
.pfpf-f .pfp-btn { justify-self: start; }
.pfpf-check { display: flex; gap: 8px; align-items: center; font-size: 14px; color: #3d4b57; }
.pfpf-check input { width: 18px; height: 18px; accent-color: #14212c; }
.pfpf-gift { margin: 0; padding: 12px 14px; border-radius: 12px; background: #eaf2f9; font-size: 15px; }
.pfpf-code { margin: 0 0 14px; padding: 16px; border: 2px dashed #14212c; border-radius: 16px; background: #f4f8fb; text-align: center; }
.pfpf-code p { margin: 0 0 4px; }
.pfpf-code b { display: block; font-size: 24px; letter-spacing: .08em; }
.pfpf-code small { color: #4a5d6d; }
.pfpf-done { display: flex; align-items: center; gap: 12px; }
.pfpf-done > span { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: #e0a526; color: #fff; font-size: 22px; }
.pfpf-done small { display: block; color: #4a5d6d; }
.pfa-me__av img { width: 100%; height: 100%; border-radius: 50%; object-fit: cover; }
.pfa-me__av { overflow: hidden; }
.pfl-new { margin: 0; font-size: 15px; }
.pfl-link { padding: 0; border: 0; background: none; color: #3a6b94; font: inherit; font-weight: 700; text-decoration: underline; cursor: pointer; }
@media (max-width: 600px) { .pfpf { padding: 16px; } .pfpf-f { padding-left: 14px; } .pfpf-ring { width: 60px; height: 60px; } .pfpf-ring b { width: 46px; height: 46px; font-size: 14px; } }
.pfpf-gift b { display: inline; font-size: inherit; }
/* Carrito lateral compacto, con las medidas del cajón de Shopify. */
.wc-block-mini-cart__drawer .components-modal__content { font-size: 14px; }
.wc-block-mini-cart__drawer .wc-block-mini-cart__title { margin: 16px 56px 4px 20px; font-size: 22px; }
.wc-block-mini-cart__drawer .wc-block-components-drawer__close { top: 12px; right: 14px; width: 34px; height: 34px; }
.wc-block-mini-cart__drawer .wc-block-mini-cart__items { padding: 4px 20px 0; }
.wc-block-mini-cart__drawer .wc-block-cart-items__row { padding: 10px 0; }
.wc-block-mini-cart__drawer .wc-block-cart-item__image img { width: 64px; height: 64px; }
.wc-block-mini-cart__drawer .wc-block-components-product-name { font-size: 14.5px; line-height: 1.3; }
.wc-block-mini-cart__drawer .wc-block-components-product-metadata, .wc-block-mini-cart__drawer .wc-block-components-product-details { font-size: 13px; }
.wc-block-mini-cart__drawer .wc-block-components-product-metadata__description { display: none; }
.wc-block-mini-cart__drawer .wc-block-cart-item__prices { font-size: 13.5px; }
.wc-block-mini-cart__drawer .wc-block-cart-item__total { font-size: 14.5px; }
.wc-block-mini-cart__drawer .wc-block-cart-item__quantity { gap: 10px; margin-top: 6px; }
.wc-block-mini-cart__drawer .wc-block-components-quantity-selector { width: 104px; height: 36px; }
.wc-block-mini-cart__drawer .wc-block-components-quantity-selector__button { min-width: 32px; font-size: 17px; }
.wc-block-mini-cart__drawer .wc-block-components-quantity-selector__input { font-size: 14px; }
.wc-block-mini-cart__drawer .wc-block-cart-item__remove-link { width: 30px; height: 30px; }
.pfc-dr { gap: 10px; margin: 4px 20px 12px; font-size: 13.5px; }
.pfc-dr .pfc-bar { padding: 9px 12px; border-radius: 12px; }
.pfc-dr .pfc-bar__t { font-size: 13.5px; margin-bottom: 6px; }
.pfc-dr .pfc-bar__track { height: 6px; }
.pfc-dr__h { font-size: 15px; }
.pfc-dr__arrows button { width: 30px; height: 30px; font-size: 20px; }
.pfc-dr__rec ul { margin-top: 6px; gap: 8px; }
.pfc-dr__card { flex-basis: min(260px, 78%); gap: 8px; padding: 8px; }
.pfc-dr__img img { width: 48px; height: 48px; }
.pfc-dr__name { font-size: 13px; }
.pfc-dr__info small { font-size: 11.5px; }
.pfc-dr__row { margin-top: 4px; }
.pfc-dr__price { font-size: 13px; }
.pfc-dr__add { min-height: 26px; padding: 0 10px; font-size: 12px; border-width: 1px; }
.pfc-dr__cats a { min-height: 48px; font-size: 13.5px; }
.wc-block-mini-cart__drawer .wc-block-mini-cart__footer { padding: 0 20px 14px; }
.wc-block-mini-cart__drawer .wc-block-mini-cart__footer-actions { margin-top: 10px; }
.wc-block-mini-cart__drawer .wc-block-mini-cart__footer-checkout { min-height: 48px; font-size: 15px; }
.pfc-df__disc summary { min-height: 42px; font-size: 13.5px; }
.pfc-df__form input { height: 38px; font-size: 14px; }
.pfc-df__prot { gap: 10px; margin-top: 10px; padding: 10px 12px; }
.pfc-df__shield { width: 30px; height: 30px; }
.pfc-df__shield svg { width: 16px; height: 16px; }
.pfc-df__prot > div { font-size: 12.5px; line-height: 1.35; }
.pfc-df__prot b { font-size: 14px; }
.pfc-df__sw { width: 44px; height: 24px; }
.pfc-df__sw i { width: 18px; height: 18px; }
.pfc-df__sw[aria-checked="true"] i { transform: translateX(20px); }
.pfc-df__sw[aria-checked="true"] i::after { font-size: 11px; }
.pfc-df__total { margin-top: 10px !important; font-size: 14.5px; }
.pfc-df__total b { font-size: 15px; font-weight: 600; }
.pfc-dt { font-size: 13px !important; margin-top: 10px !important; }
/* Navbar avatar (profile.php) */
.pfc-av-wrap { display: flex; align-items: center; }
.pfc-av { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; overflow: hidden; background: #111; color: #fff !important; font-size: 15px; font-weight: 600; line-height: 1; text-decoration: none !important; box-shadow: 0 0 0 2px #fff, 0 0 0 3px #e3e3e3; transition: box-shadow .15s; }
.pfc-av:hover { box-shadow: 0 0 0 2px #fff, 0 0 0 3px #111; }
.pfc-av:focus-visible { outline: 3px solid #3a6b94; outline-offset: 3px; }
.pfc-av img { display: block; width: 100%; height: 100%; object-fit: cover; }

/* Mi cuenta → Suscripciones */
.pfs { display: grid; gap: 14px; }
.pfs-top { display: flex; gap: 14px; align-items: flex-start; }
.pfs-top img { flex: none; width: 72px; height: 72px; object-fit: cover; border-radius: 14px; background: #eef4f9; }
.pfs-top h3 { margin: 0 0 4px; font-size: 18px; }
.pfs-top p { margin: 0 0 4px; }
.pfs-st { font-weight: 700; }
.pfs-st.is-active { color: #1f6f43; } .pfs-st.is-pending { color: #8a5a00; } .pfs-st.is-paused { color: #4a5d6d; } .pfs-st.is-cancelled { color: #8a3524; }
.pfs-acts { display: flex; flex-wrap: wrap; gap: 8px; }
.pfs-f { display: flex; gap: 6px; align-items: center; margin: 0; }
.pfs-f select { height: 40px; padding: 0 10px; border: 1.5px solid #cfdbe5; border-radius: 10px; font: inherit; font-size: 14px; }
.pfs-b { min-height: 40px; padding: 0 14px; border: 1.5px solid #14212c; border-radius: 99px; background: #fff; color: #14212c; font: inherit; font-size: 14px; font-weight: 600; cursor: pointer; }
.pfs-b:focus-visible { outline: 3px solid #3a6b94; outline-offset: 2px; }
.woocommerce-MyAccount-navigation-link--suscripciones { --pfa-ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 11a8 8 0 0 0-14.3-4.9L4 8M4 4v4h4M4 13a8 8 0 0 0 14.3 4.9L20 16M20 20v-4h-4'/%3E%3C/svg%3E"); }
/* Side cart on phones: the bottom part (discount, protection, total, pay) took ~1/3 of the screen and left room
   for a single product. Smaller and to the point, so 2–3 products fit above it. The «Tu regalo» pill and the
   WhatsApp bubble no longer cover the pay button while the cart is open. */
body:has(.wc-block-components-drawer__screen-overlay:not(.wc-block-components-drawer__screen-overlay--is-hidden)) :is(.pfg-pill, .joinchat, .wa__btn_popup, .pf-wa, [class*="whatsapp-float"], [class*="wa-float"]) { display: none !important; }
/* Compact on every screen size: the cart felt too big on desktop too. */
@media all {
	.wc-block-mini-cart__drawer .wc-block-mini-cart__title { margin-top: 12px; font-size: 20px; }
	.wc-block-mini-cart__drawer .wc-block-cart-items__row { padding: 8px 0; }
	.wc-block-mini-cart__drawer .wc-block-cart-item__image img { width: 56px; height: 56px; }
	.pfc-dr { margin-bottom: 6px; }
	.pfc-dr__h { font-size: 14px; }
	.pfc-dr__arrows button { width: 26px; height: 26px; font-size: 18px; }
	.pfc-dr__card { flex-basis: min(240px, 74%); padding: 6px 8px; align-items: center; }
	.pfc-dr__img img { width: 40px; height: 40px; }
	.pfc-dr__info small { display: block; font-size: 11.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
	.pfc-dr__name { -webkit-line-clamp: 1; }
	.pfc-df__pts { margin-top: 6px; padding: 6px 10px; gap: 8px; }
	.pfc-df__pts-ic { width: 22px; height: 22px; font-size: 11px; }
	.pfc-df__pts b { font-size: 13px; }
	.pfc-df__pts small { font-size: 11.5px; }
	.pfc-df__pts-btn { padding: 5px 12px; font-size: 12.5px; }
	.wc-block-mini-cart__drawer .wc-block-mini-cart__footer { padding: 0 16px 10px; }
	.pfc-df__disc summary { min-height: 36px; font-size: 13px; }
	.pfc-df__prot { margin-top: 6px; padding: 6px 10px; gap: 8px; }
	.pfc-df__prot > div p + p { display: block; margin-top: 1px !important; font-size: 11.5px; line-height: 1.3; color: #5b5b5b; }
	.pfc-df__shield { width: 24px; height: 24px; }
	.pfc-df__shield svg { width: 14px; height: 14px; }
	.pfc-df__prot b { font-size: 13.5px; }
	.pfc-df__total { margin-top: 6px !important; font-size: 14px; }
	.wc-block-mini-cart__drawer .wc-block-mini-cart__footer-actions { margin-top: 8px; }
	.wc-block-mini-cart__drawer .wc-block-mini-cart__footer-checkout { min-height: 46px; }
	.pfc-dt { display: none; }
}
/* Protocol line in the side cart: only the offer, not the raw «1 frasco» variation. */
.wc-block-mini-cart__drawer .wc-block-cart-item__product:is(:has(.wc-block-components-product-details__oferta),:has(.wc-block-components-product-details__offer)) .wc-block-components-product-metadata > .wc-block-components-product-details:not(:has(.wc-block-components-product-details__oferta,.wc-block-components-product-details__offer)) { display: none; }
.wc-block-mini-cart__drawer :is(.wc-block-components-product-details__oferta, .wc-block-components-product-details__offer) .wc-block-components-product-details__value { color: #1f6f43; font-weight: 600; }

/* Mi cuenta → Mi rutina (diagnóstico) */
.pfq-steps { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.pfq-steps li { display: inline-flex; align-items: center; gap: 8px; padding: 6px 12px; border-radius: 99px; background: #eef2f5; color: #6b7a87; font-size: 14px; font-weight: 600; }
.pfq-steps li span { display: inline-grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; background: #fff; font-size: 12.5px; }
.pfq-steps li.is-on { background: #14212c; color: #fff; }
.pfq-steps li.is-on span { color: #14212c; }
.pfq-form { display: grid; gap: 16px; }
.pfq-step { display: grid; gap: 18px; margin: 0; }
.pfq-step[hidden], .pfq-miss[hidden], .pfq-stepmiss[hidden] { display: none; }
.pfq-step legend { float: left; width: 100%; padding: 0; font-size: 22px; font-weight: 650; color: #14212c; }
.pfq-step legend .pfp-k { display: block; }
.pfq-q { display: grid; gap: 10px; }
.pfq-qt { font-weight: 650; }
.pfq-qt small { font-weight: 500; color: #6b7a87; }
.pfq-opts { display: flex; flex-wrap: wrap; gap: 8px; }
.pfq-o { position: relative; cursor: pointer; }
.pfq-o input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.pfq-o span { display: inline-block; padding: 10px 14px; border: 1.5px solid #cfdbe5; border-radius: 12px; background: #fff; font-size: 15px; line-height: 1.3; }
.pfq-o input:checked + span { border-color: #14212c; background: #14212c; color: #fff; }
.pfq-o input:focus-visible + span { outline: 3px solid #3a6b94; outline-offset: 2px; }
.pfq-consent { display: flex; gap: 10px; align-items: flex-start; font-size: 14.5px; color: #3d4b57; }
.pfq-consent input { margin-top: 3px; flex: none; width: 18px; height: 18px; }
.pfq-nav { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.pfq-link { padding: 0; border: 0; background: none; color: #3a6b94; font: inherit; font-size: 15px; text-decoration: underline; cursor: pointer; }
.pfq-fix { display: grid; gap: 12px; margin: 14px 0 0; padding-left: 22px; }
.pfq-fix li span { display: block; margin-top: 3px; color: #3d4b57; }
.pfq-fix li small { display: block; margin-top: 4px; color: #6b7a87; font-size: 13px; }
.pfq-res h4 { margin: 18px 0 8px; font-size: 16px; }
.pfq-good { margin: 0; padding-left: 20px; color: #1f5a2a; }
.pfq-prods { display: grid; gap: 14px; margin: 0; padding: 0; list-style: none; }
.pfq-prod { display: grid; grid-template-columns: 88px 1fr; gap: 14px; align-items: start; }
.pfq-prod img { width: 88px; height: 88px; object-fit: contain; border-radius: 12px; background: #f4f6f8; }
.pfq-prod div { display: grid; gap: 6px; justify-items: start; }
.pfq-prod span { color: #3d4b57; font-size: 15px; }
.pfq-prod .pfp-btn { min-height: 40px; font-size: 14px; }
.pfq-note, .pfq-cta { margin-top: 12px !important; font-size: 14px; }
.pfq-again { margin: 0; }
.pfq-del { margin: 0; }

/* Diagnosis (Protocolo 90 → step 1) */
.pfq { display: grid; gap: 16px; scroll-margin-top: 90px; }
.pfq-head h3 { margin: 4px 0 6px; font-size: 24px; }
.pfq-q.is-miss .pfq-opts .pfq-o span { border-color: #c2413b; }
.pfq-miss { margin: 0; color: #b0302b; font-size: 14px; }
.pfq-stepmiss { margin: 0; }
.pfq-consent small { display: block; margin-top: 4px; color: #6b7a87; }
.pfq-hero { display: grid; grid-template-columns: auto 1fr; gap: 20px; align-items: center; margin-top: 8px; }
.pfq-hero h3 { margin: 0; font-size: 22px; line-height: 1.25; }
.pfq-sub { margin: 4px 0 0; color: #3a6b94; font-weight: 600; }
.pfq-lvl { margin: 10px 0 4px; }
.pfq-when { margin: 6px 0 0; font-size: 13.5px; }
.pfq-ring { --c: #2f7d4a; display: grid; place-items: center; align-content: center; width: 112px; height: 112px; border-radius: 50%; background: radial-gradient(closest-side, #fff 78%, transparent 79%), conic-gradient(var(--c) calc(var(--v) * 1%), #e7edf2 0); text-align: center; }
.pfq-ring.is-mid { --c: #c98a1b; }
.pfq-ring.is-low { --c: #c2413b; }
.pfq-ring b { font-size: 34px; line-height: 1; color: #14212c; }
.pfq-ring span { font-size: 12.5px; color: #6b7a87; }
.pfq-focus { margin-top: 16px; padding: 14px 16px; border-radius: 14px; background: #f3f7fa; }
.pfq-focus h4 { margin: 0 0 6px; font-size: 16px; }
.pfq-focus ol { margin: 0; padding-left: 20px; font-weight: 600; }
.pfq-areas { display: grid; gap: 14px; margin-top: 12px; }
.pfq-area { padding: 16px; border: 1px solid #e3e8ed; border-left: 5px solid #2f7d4a; border-radius: 14px; }
.pfq-area.is-mid { border-left-color: #c98a1b; }
.pfq-area.is-low { border-left-color: #c2413b; }
.pfq-area header { display: flex; align-items: center; gap: 10px; }
.pfq-area header b { font-size: 17px; }
.pfq-tag { padding: 2px 10px; border-radius: 99px; background: #e6f3ea; color: #1f5a2a; font-size: 13px; font-weight: 600; }
.pfq-area.is-mid .pfq-tag { background: #fbf1dc; color: #7a5209; }
.pfq-area.is-low .pfq-tag { background: #fbe4e2; color: #8f231e; }
.pfq-num { margin-left: auto; font-size: 20px; font-weight: 700; color: #14212c; }
.pfq-bar { height: 8px; margin: 10px 0; border-radius: 99px; background: #e7edf2; overflow: hidden; }
.pfq-bar i { display: block; height: 100%; border-radius: inherit; background: #2f7d4a; }
.pfq-area.is-mid .pfq-bar i { background: #c98a1b; }
.pfq-area.is-low .pfq-bar i { background: #c2413b; }
.pfq-av { margin: 0; color: #3d4b57; }
.pfq-area .pfq-fix { padding-left: 0; list-style: none; }
.pfq-area .pfq-fix li { padding: 10px 12px; border-radius: 12px; background: #f7f9fb; }
.pfq-ok { margin: 10px 0 0; padding-left: 26px; position: relative; color: #1f5a2a; }
.pfq-ok::before { content: "✓"; position: absolute; left: 6px; font-weight: 700; }
.pfq-recs { margin-top: 14px; padding-top: 12px; border-top: 1px dashed #d5dee6; }
.pfq-recs .pfp-k { margin-bottom: 8px; }
.pfq-prod small { color: #7a5209; font-size: 13.5px; }
.pfq-price { color: #14212c; font-weight: 600; font-size: 14.5px; }
.pfq-plan { display: grid; gap: 12px; margin: 12px 0 0; padding: 0; list-style: none; counter-reset: pfq; }
.pfq-plan li { display: grid; gap: 3px; padding: 12px 14px 12px 52px; position: relative; border-radius: 14px; background: #f7f9fb; counter-increment: pfq; }
.pfq-plan li::before { content: counter(pfq); position: absolute; left: 14px; top: 12px; display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: #14212c; color: #fff; font-weight: 700; font-size: 14px; }
.pfq-plan li > span:last-child { color: #3d4b57; }
.pfq-day { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 10px; }
.pfq-day > div { padding: 14px 16px; border-radius: 14px; background: #f7f9fb; }
.pfq-day h4 { margin: 0 0 8px; font-size: 16px; }
.pfq-day ol { margin: 0; padding-left: 20px; display: grid; gap: 6px; }
.pfq-week { margin: 10px 0 0; font-size: 14px; color: #3d4b57; }
.pfq-again { display: flex; flex-wrap: wrap; gap: 16px; align-items: center; }
.pfq-next .pfp-k { margin: 0; }
@media (max-width: 640px) {
	.pfq-hero { grid-template-columns: 1fr; justify-items: start; }
	.pfq-ring { width: 96px; height: 96px; }
	.pfq-day { grid-template-columns: 1fr; }
}
.pfp-btn.is-ghost { background: #fff; color: #14212c; box-shadow: inset 0 0 0 1.5px #14212c; }
.pfq-area.is-extra { border-left-color: #3a6b94; }
.pfq-area.is-extra .pfq-recs { margin-top: 8px; padding-top: 0; border-top: 0; }
/* Diagnosis as 4 quizzes: each opens and closes; the next one only after the current one */
.pfq-prog { height: 8px; margin-top: 12px; border-radius: 99px; background: #e7edf2; overflow: hidden; }
.pfq-prog i { display: block; height: 100%; border-radius: inherit; background: #14212c; }
.pfq-progt { margin: 6px 0 0; font-size: 14px; color: #6b7a87; }
.pfq-secs { display: grid; gap: 12px; }
.pfq-sec { padding: 0; }
.pfq-sec > .pfq-sum, .pfq-sec > summary { display: flex; align-items: center; gap: 14px; padding: 16px 20px; cursor: pointer; list-style: none; }
.pfq-sec > summary::-webkit-details-marker { display: none; }
.pfq-sec > summary::after { content: ""; flex: none; width: 10px; height: 10px; margin-left: 4px; border-right: 2px solid #6b7a87; border-bottom: 2px solid #6b7a87; transform: rotate(45deg) translateY(-3px); transition: transform .2s; }
.pfq-sec[open] > summary::after { transform: rotate(-135deg) translateY(-3px); }
.pfq-sn { display: grid; place-items: center; flex: none; width: 34px; height: 34px; border-radius: 50%; background: #14212c; color: #fff; font-weight: 700; }
.pfq-sec.is-done .pfq-sn { background: #2f7d4a; }
.pfq-sec.is-locked { opacity: .6; }
.pfq-sec.is-locked .pfq-sn { background: #cfd8e0; color: #14212c; }
.pfq-sec.is-locked .pfq-sum { cursor: default; }
.pfq-st { display: grid; gap: 2px; min-width: 0; }
.pfq-st b { font-size: 17px; }
.pfq-st small { color: #6b7a87; font-size: 14px; }
.pfq-stat { margin-left: auto; display: inline-flex; align-items: baseline; gap: 4px; color: #6b7a87; font-size: 14px; white-space: nowrap; }
.pfq-stat b { color: #14212c; font-size: 20px; }
.pfq-stat svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2; align-self: center; }
.pfq-body { display: grid; gap: 14px; padding: 0 20px 20px; }
.pfq-prof { margin: 0; font-size: 17px; }
.pfq-fixes { display: grid; gap: 8px; margin-top: 12px; }
.pfq-fixes > .pfp-k { margin: 0; }
.pfq-fx { border-radius: 12px; background: #f7f9fb; }
.pfq-fx > summary { padding: 10px 14px; font-weight: 650; cursor: pointer; }
.pfq-fx > p { margin: 0; padding: 0 14px 6px; color: #3d4b57; }
.pfq-fx > small { display: block; padding: 0 14px 10px; color: #6b7a87; font-size: 13px; }
.pfq-more { margin-top: 12px; border: 1px solid #e3e8ed; border-radius: 14px; }
.pfq-more > summary { padding: 12px 16px; font-weight: 650; cursor: pointer; }
.pfq-more > .pfq-plan, .pfq-more > .pfq-day { margin: 0; padding: 0 12px 12px; }
.pfq-buy { display: flex; align-items: center; gap: 12px; margin: 2px 0 0; }
.pfq-edit { margin: 0; font-size: 14.5px; }
.pfq-privacy { font-size: 14px; color: #6b7a87; }
.pfq-privacy > summary { cursor: pointer; }
.pfq-privacy form { margin: 0; }
.pfpr-see { display: inline-block; margin-top: 6px; font-size: 13.5px; }
.pfpr-reset { margin: 10px 0 0; }
@media (max-width: 640px) {
	.pfq-sec > .pfq-sum, .pfq-sec > summary { padding: 14px; gap: 10px; }
	.pfq-body { padding: 0 14px 16px; }
	.pfq-stat span { display: none; }
	.pfq-sec.is-locked .pfq-stat span { display: none; }
}
/* Photo calendar, compact: the 5 days in one row; below only today's upload or the next date */
.pfpr { gap: 10px; padding: 16px 18px; }
.pfpr-top h3 { font-size: 17px; }
.pfpr-steps { list-style: none; margin: 0; padding: 0; display: flex; gap: 6px; }
.pfpr-steps li { flex: 1 1 0; display: grid; justify-items: center; gap: 1px; min-width: 0; padding: 7px 4px; border: 1px solid #e3e8ed; border-radius: 12px; background: #f6f8fa; text-align: center; line-height: 1.2; }
.pfpr-steps b { font-size: 13px; }
.pfpr-steps small { font-size: 11.5px; color: #6b7a87; }
.pfpr-steps small svg { width: 12px; height: 12px; fill: none; stroke: currentColor; stroke-width: 2; }
.pfpr-dot { display: grid; place-items: center; width: 18px; height: 18px; border-radius: 50%; background: #dfe6ec; color: #fff; font-size: 11px; font-weight: 700; }
.pfpr-steps .is-ok { border-color: #bfe0cb; background: #f2f9f4; }
.pfpr-steps .is-ok .pfpr-dot { background: #2f7d4a; }
.pfpr-steps .is-due { border-color: #14212c; background: #fff; }
.pfpr-steps .is-due .pfpr-dot { background: #14212c; }
.pfpr-steps .is-missed { border-color: #ecd3cc; }
.pfpr-steps .is-missed .pfpr-dot { background: #c2413b; }
.pfpr-steps.is-blur { opacity: .55; filter: grayscale(1); pointer-events: none; user-select: none; }
.pfpr-steps .pfpr-see { margin-top: 2px; font-size: 11.5px; }
.pfpr-now { display: grid; gap: 8px; padding: 12px 14px; border-radius: 14px; background: #f3f7fa; }
.pfpr-now-t { margin: 0; font-size: 14.5px; }
.pfpr-now-t span { color: #1f6f43; font-weight: 600; font-size: 13.5px; }
.pfpr-now .pfpr-up { margin: 0; gap: 6px; }
.pfpr-row { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.pfpr-row .pfpr-file { flex: 1 1 200px; width: auto; }
.pfpr-row .pfp-btn { min-height: 40px; padding: 0 18px; font-size: 14px; }
.pfpr-now .pfpr-com { display: block; font-size: 13.5px; }
.pfpr-now .pfpr-com summary { cursor: pointer; color: #3a6b94; }
.pfpr-now .pfpr-com textarea { margin-top: 6px; }
.pfpr-next { margin: 0; font-size: 14px; color: #3d4b57; }
.pfpr-more { font-size: 14px; }
.pfpr-more summary { cursor: pointer; color: #3a6b94; }
.pfpr-more .pfpr-start { margin-top: 8px; }
.pfpr-tip { margin: 0; font-size: 13px; }
.pfpr-reset { margin: 0; font-size: 13.5px; }
/* Ebooks: read in the browser; download is a small link */
.pfp-bookact { display: inline-flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.pfp-dl { font-size: 13.5px; color: #3a6b94; }
@media (max-width: 520px) {
	.pfpr-steps { gap: 4px; }
	.pfpr-steps small { font-size: 10.5px; }
	.pfpr-row .pfp-btn { width: 100%; }
}
/* Protocolo 90, lighter: the diagnosis is one card; the 4 quizzes are rows that open on click */
.pfq { gap: 0; padding: 18px 20px; border: 1px solid #e3e8ed; border-radius: 18px; background: #fff; box-shadow: 0 10px 30px -24px rgb(20 33 44 / .35); }
.pfq-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 8px; }
.pfq-head h3 { margin: 0 0 2px; font-size: 18px; }
.pfq-head .pfp-muted { margin: 0; font-size: 14px; }
.pfq-count { flex: none; padding: 4px 10px; border-radius: 99px; background: #eef4f9; color: #3a6b94; font-size: 13px; }
.pfq-count b { color: #14212c; }
.pfq > .pfq-res { margin: 10px 0 6px; padding: 14px 16px; border: 0; border-radius: 14px; background: #f7f9fb; box-shadow: none; }
.pfq > .pfq-res .pfq-ring { width: 84px; height: 84px; }
.pfq > .pfq-res .pfq-ring b { font-size: 26px; }
.pfq > .pfq-res .pfq-hero h3 { font-size: 17px; }
.pfq-secs { gap: 0; }
.pfq-sec { border: 0; border-top: 1px solid #eef2f5; border-radius: 0; background: none; box-shadow: none; opacity: 1; }
.pfq-sec > .pfq-sum, .pfq-sec > summary { padding: 12px 2px; gap: 12px; }
.pfq-sn { width: 28px; height: 28px; font-size: 13.5px; }
.pfq-st b { font-size: 15.5px; }
.pfq-st small { font-size: 13px; }
.pfq-stat b { font-size: 17px; }
.pfq-sec.is-locked .pfq-st, .pfq-sec.is-locked .pfq-sn { opacity: .5; }
.pfq-go { padding: 3px 10px; border-radius: 99px; background: #14212c; color: #fff; font-size: 12.5px; font-weight: 600; }
.pfq-body { padding: 0 2px 16px 40px; }
.pfq > .pfq-note { margin: 10px 0 0; font-size: 12.5px; }
.pfq > .pfq-privacy { margin-top: 6px; font-size: 13px; }
@media (max-width: 640px) {
	.pfq { padding: 14px; }
	.pfq-body { padding: 0 0 14px; }
}
/* Finished check-up: one line with the score; opens like a drop-down */
.pfq.is-complete > summary { list-style: none; cursor: pointer; align-items: center; margin: 0; }
.pfq.is-complete > summary::-webkit-details-marker { display: none; }
.pfq.is-complete > summary::after { content: ""; flex: none; width: 10px; height: 10px; margin-left: 4px; border-right: 2px solid #6b7a87; border-bottom: 2px solid #6b7a87; transform: rotate(45deg) translateY(-3px); transition: transform .2s; }
.pfq.is-complete[open] > summary::after { transform: rotate(-135deg) translateY(-3px); }
.pfq.is-complete[open] > summary { margin-bottom: 8px; }
.pfq-score { margin-left: auto; color: #6b7a87; font-size: 14px; white-space: nowrap; }
.pfq-score b { color: #14212c; font-size: 22px; }
.pfq.is-locked .pfq-count svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2; vertical-align: -3px; }
.pfq-unlock { margin: 12px 0 0; }

/* Side cart: points as money */

/* Order bump (product page, unticked) */
.pf-bump { display: flex; align-items: center; gap: 10px; margin: 12px 0 4px; padding: 10px 12px; border: 1px dashed #9fb4c6; border-radius: 12px; background: #f4f8fb; cursor: pointer; }
.pf-bump input { flex: none; width: 20px; height: 20px; accent-color: #1f5a85; margin: 0; }
.pf-bump__img img { width: 52px; height: 52px; object-fit: cover; border-radius: 8px; display: block; }
.pf-bump__t { display: flex; flex-direction: column; gap: 2px; font-size: 13.5px; color: #14212c; line-height: 1.35; }
.pf-bump__t small { color: #5b6670; font-size: 12.5px; }
.pf-bump__p s { color: #8a949c; }
.pf-bump__p i { font-style: normal; color: #1f5a85; font-weight: 600; font-size: 12px; }
/* After-purchase offer (thank-you page) */
.pf-pp { border: 1px solid #cfe0ee; background: #f4f8fb; }
.pf-pp__k { margin: 0 0 8px; font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: #1f5a85; font-weight: 700; }
.pf-pp__row { display: flex; gap: 14px; align-items: flex-start; }
.pf-pp__img img { width: 96px; height: 96px; object-fit: cover; border-radius: 10px; display: block; }
.pf-pp h2 { margin: 0 0 4px; font-size: 18px; }
.pf-pp p { margin: 0 0 6px; }
.pf-pp__price s { color: #8a949c; }
.pf-pp__until { font-size: 13px; color: #5b6670; }
.pf-pp__btn { display: inline-block; margin-top: 6px; background: #14212c; color: #fff !important; padding: 11px 18px; border-radius: 999px; font-weight: 700; text-decoration: none; }
@media (max-width: 480px) { .pf-pp__img img { width: 72px; height: 72px; } }

.pfc-df__pts { display: flex; align-items: center; gap: 10px; margin: 10px 0 0; padding: 9px 10px; border-radius: 12px; background: #f4f8fb; border: 1px solid #dbe6ef; color: #14212c; }
.pfc-df__pts > div { flex: 1; min-width: 0; display: flex; flex-direction: column; line-height: 1.3; }
.pfc-df__pts b { font-size: 13.5px; }
.pfc-df__pts small { font-size: 12px; color: #5b6670; }
.pfc-df__pts-ic { flex: none; width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; background: #1f5a85; color: #fff; font-size: 13px; }
.pfc-df__pts.is-on .pfc-df__pts-ic { background: #1e7a4c; }
.pfc-df__pts-btn { flex: none; padding: 7px 14px; border-radius: 999px; background: #14212c; color: #fff !important; font-size: 13px; font-weight: 700; text-decoration: none; }

/* Side cart: the variation («5mg») sits on the price line, not on a line of its own (drawer.js). */
.wc-block-mini-cart__drawer .pfc-var-moved { display: none !important; }
.wc-block-mini-cart__drawer .wc-block-components-product-details:not(:has(li:not(.pfc-var-moved))) { display: none; }
.wc-block-mini-cart__drawer .wc-block-cart-item__prices[data-pfc-var]::after { content: " · " attr(data-pfc-var); color: #6b6b6b; font-size: .92em; }

/* Seasons (seasons.php): note on product pages and line in the side cart. */
.pf-season { display: flex; align-items: flex-start; gap: 10px; margin: 12px 0 0; padding: 10px 12px; border-radius: 12px; background: #fbf5ee; border: 1px solid #f0dfcc; color: #3a2a1c; font-size: 14px; line-height: 1.4; }
.pf-season__ic { flex: none; font-size: 20px; line-height: 1.1; }
.pf-season__left { display: block; margin-top: 2px; font-size: 12.5px; color: #8a5a2b; font-weight: 600; }
.pf-season[hidden], .pfc-df__season[hidden] { display: none !important; }
.pfc-df__season { display: flex; align-items: center; gap: 8px; margin-top: 6px; padding: 6px 10px; border-radius: 12px; background: #fbf5ee; border: 1px solid #f0dfcc; color: #3a2a1c; }
.pfc-df__season > div { flex: 1; min-width: 0; display: flex; flex-direction: column; line-height: 1.3; }
.pfc-df__season b { font-size: 13px; }
.pfc-df__season small { font-size: 11.5px; color: #8a5a2b; }
.pfc-df__season-ic { flex: none; font-size: 18px; }
.pfc-df__season-btn { flex: none; padding: 5px 12px; border: 0; border-radius: 999px; background: #14212c; color: #fff; font: inherit; font-size: 12.5px; font-weight: 700; cursor: pointer; }
.pfc-df__season-btn:focus-visible { outline: 3px solid #3a6b94; outline-offset: 2px; }
.pf-season-tag { position: absolute; top: 10px; left: 10px; z-index: 2; padding: 4px 9px; border-radius: 999px; background: #fff; border: 1px solid #f0dfcc; color: #5a3714; font-size: 12px; font-weight: 700; line-height: 1.2; box-shadow: 0 2px 8px rgba(0,0,0,.08); }
.pf-season-tag[hidden], .pf-sb[hidden] { display: none !important; }
/* Home banner of the season: offer on the left, the duo with «add both» on the right. */
.pf-sb { position: relative; overflow: hidden; padding: clamp(28px, 4vw, 48px) 16px; background: radial-gradient(1200px 400px at 10% 0%, #fff6ea 0%, transparent 60%), linear-gradient(135deg, #f9eddf 0%, #f3dcc2 100%); border-block: 1px solid #ecd5bb; }
.pf-sb__in { max-width: 1180px; margin: 0 auto; display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(20px, 4vw, 56px); align-items: center; }
.pf-sb__k { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0 0 12px; font-size: 13px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: #8a4f1c; }
.pf-sb__left { padding: 4px 10px; border-radius: 999px; background: #2b1d10; color: #ffe7c9 !important; font-size: 12px; letter-spacing: .02em; text-transform: none; }
.pf-sb h2 { margin: 0 0 16px; font-family: Georgia, serif; font-weight: 400; font-size: clamp(30px, 4vw, 46px); line-height: 1.05; letter-spacing: -.01em; color: #2b1d10; }
.pf-sb__chips { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.pf-sb__chips li { display: flex; align-items: center; gap: 8px; width: fit-content; padding: 8px 14px; border-radius: 12px; background: rgba(255, 255, 255, .7); border: 1px solid #ecd5bb; color: #4a3826; font-size: 15px; }
.pf-sb__chips b { color: #2b1d10; }
.pf-sb__chips code { padding: 2px 8px; border-radius: 6px; background: #2b1d10; color: #ffe7c9; font: 700 13px/1.4 ui-monospace, Menlo, monospace; letter-spacing: .04em; }
.pf-sb__duo { padding: 18px; border-radius: 22px; background: #fff; box-shadow: 0 1px 2px rgba(80, 50, 20, .06), 0 18px 50px rgba(80, 50, 20, .14); }
.pf-sb__dh { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 12px; margin-bottom: 12px; }
.pf-sb__dn { margin: 0; font-family: Georgia, serif; font-size: 24px; color: #2b1d10; }
.pf-sb__ds { margin: 0; font-size: 13.5px; font-weight: 600; color: #a0561b; }
.pf-sb__ps { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: 10px; }
.pf-sb__duo--list .pf-sb__ps { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.pf-sb__p { display: flex; flex-direction: column; gap: 8px; color: #1f1a14; text-decoration: none; }
.pf-sb__p img { width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; border-radius: 14px; background: #f6f3ee; transition: transform .25s; }
.pf-sb__p:hover img { transform: scale(1.03); }
.pf-sb__p span { min-height: 2.6em; font-size: 14px; font-weight: 600; line-height: 1.3; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.pf-sb__plus { display: grid; place-items: center; width: 34px; height: 34px; margin-top: -2.6em; border-radius: 50%; background: #f3dcc2; color: #8a4f1c; font-size: 22px; font-weight: 700; }
.pf-sb__buy { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin-top: 16px; padding-top: 14px; border-top: 1px solid #f1e6d8; }
.pf-sb__price { margin: 0; display: flex; align-items: baseline; gap: 8px; }
.pf-sb__price s { color: #8c7f72; font-size: 15px; }
.pf-sb__price b { font-size: 24px; color: #2b1d10; }
.pf-sb__btn { flex: 1 1 220px; min-height: 50px; padding: 0 22px; border: 0; border-radius: 999px; background: #2b1d10; color: #fff; font: inherit; font-size: 15.5px; font-weight: 700; cursor: pointer; transition: background .15s, transform .15s; }
.pf-sb__btn:hover { background: #4a2f16; transform: translateY(-1px); }
.pf-sb__btn:disabled { opacity: .7; cursor: progress; transform: none; }
.pf-sb__btn:focus-visible { outline: 3px solid #3a6b94; outline-offset: 3px; }
.pf-sb__fine { margin: 10px 0 0; font-size: 12.5px; color: #7a6a5a; text-align: right; }
@media (max-width: 820px) {
	.pf-sb__in { grid-template-columns: 1fr; }
	.pf-sb__chips { flex-direction: row; flex-wrap: wrap; }
	.pf-sb__chips li { font-size: 13.5px; padding: 6px 10px; }
	.pf-sb__fine { text-align: left; }
}
/* Points at checkout (points.php → checkout.js), under the discount code. */
.pf-co-pts { margin: 12px 0 4px; }
.pfc-df__pts-btn--ghost { background: transparent; color: #14212c !important; border: 1.5px solid #14212c; }
/* Season gift in the home banner: a small gift card with a bow. */
.pf-sb__gift { display: flex; align-items: center; gap: 14px; margin-top: 16px; padding: 12px 16px 12px 12px; width: fit-content; max-width: 100%; border-radius: 18px; background: #fff; border: 1.5px dashed #e3b27c; color: #2b1d10; text-decoration: none; box-shadow: 0 6px 20px rgba(80, 50, 20, .08); transition: transform .2s, box-shadow .2s; }
.pf-sb__gift:hover { transform: translateY(-2px); box-shadow: 0 10px 26px rgba(80, 50, 20, .14); }
.pf-sb__gimg { position: relative; flex: none; width: 68px; height: 68px; }
.pf-sb__gimg img { width: 68px; height: 68px; object-fit: cover; border-radius: 12px; background: #f6f3ee; }
.pf-sb__gimg i { position: absolute; right: -8px; top: -10px; font-size: 24px; font-style: normal; transform: rotate(12deg); filter: drop-shadow(0 2px 3px rgba(0,0,0,.15)); }
.pf-sb__gt { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.pf-sb__gt small { font-size: 11.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #a0561b; }
.pf-sb__gt b { font-size: 15px; line-height: 1.25; }
.pf-sb__gt span { font-size: 13px; color: #6a5a4a; line-height: 1.35; }
/* The gift in the cart: a gift, not a product to edit (no quantity or delete; it comes and goes by itself). */
.wc-block-cart-items__row:has(.wc-block-components-product-details__regalo) { background: linear-gradient(90deg, #fdf4e8, transparent); }
.wc-block-cart-items__row:has(.wc-block-components-product-details__regalo) :is(.wc-block-components-quantity-selector, .wc-block-cart-item__remove-link) { display: none !important; }
.wc-block-components-product-details__regalo .wc-block-components-product-details__value { color: #a0561b; font-weight: 700; }
.wc-block-components-product-details__regalo .wc-block-components-product-details__value::before { content: "🎁 "; }
/* Season look of the header (seasons.php). Bar in the season's color while it lasts. */
.pf-mq.pf-mq--season { background: var(--pf-season-bg); color: var(--pf-season-fg, #fff); }
/* The secret: the season's emoji left of the logo; hover or tap shows the code. */
.pf-brand { display: inline-flex; align-items: center; gap: 6px; min-width: max-content; justify-self: start; }
.pf-secret { position: relative; display: inline-flex; }
.pf-secret[hidden] { display: none !important; }
.pf-secret__btn { width: 34px; height: 34px; padding: 0; border: 0; border-radius: 50%; background: transparent; font-size: 22px; line-height: 1; cursor: pointer; transition: transform .2s; }
.pf-secret__btn:hover, .pf-secret.is-open .pf-secret__btn { transform: rotate(-12deg) scale(1.12); }
.pf-secret__btn:focus-visible { outline: 3px solid #3a6b94; outline-offset: 2px; }
@keyframes pfSecretWiggle { 0%, 92%, 100% { transform: rotate(0); } 94% { transform: rotate(-14deg); } 96% { transform: rotate(12deg); } 98% { transform: rotate(-6deg); } }
.pf-secret__btn { animation: pfSecretWiggle 9s ease-in-out 3s infinite; }
.pf-secret__tip { position: absolute; z-index: 60; top: calc(100% + 10px); left: -6px; width: max-content; max-width: min(280px, 80vw); padding: 12px 14px; border-radius: 14px; background: #14212c; color: #fff; box-shadow: 0 12px 30px rgba(0, 0, 0, .22); display: flex; flex-direction: column; gap: 6px; opacity: 0; visibility: hidden; transform: translateY(-4px); transition: opacity .18s, transform .18s, visibility .18s; pointer-events: none; }
.pf-secret__tip::before { content: ""; position: absolute; top: -6px; left: 18px; width: 12px; height: 12px; background: #14212c; transform: rotate(45deg); }
.pf-secret:hover .pf-secret__tip, .pf-secret:focus-within .pf-secret__tip, .pf-secret.is-open .pf-secret__tip { opacity: 1; visibility: visible; transform: none; pointer-events: auto; }
.pf-secret__k { font-size: 12.5px; font-weight: 600; color: #c9d6e0; }
.pf-secret__tip code { align-self: flex-start; padding: 4px 10px; border-radius: 8px; background: #fff; color: #14212c; font: 800 17px/1.3 ui-monospace, Menlo, monospace; letter-spacing: .08em; }
.pf-secret__tip small { font-size: 12px; color: #c9d6e0; line-height: 1.35; }
@media (max-width: 430px) { .pf-brand { gap: 2px; } .pf-secret__btn { width: 28px; height: 28px; font-size: 18px; } }
@media (prefers-reduced-motion: reduce) { .pf-secret__btn { animation: none; transition: none; } .pf-secret__tip { transition: none; } }
/* Season set of 3 or 4 products in the home banner. */
.pf-sb__ps--n3 { grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) auto minmax(0, 1fr); }
.pf-sb__ps--n4 { grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) auto minmax(0, 1fr) auto minmax(0, 1fr); gap: 6px; }
.pf-sb__ps--n3 .pf-sb__plus, .pf-sb__ps--n4 .pf-sb__plus { width: 24px; height: 24px; font-size: 16px; }
.pf-sb__ps--n4 .pf-sb__p span { font-size: 12.5px; }
@media (max-width: 820px) {
	.pf-sb__ps--n4 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
	.pf-sb__ps--n4 .pf-sb__plus { display: none; }
}
/* Phones with the season secret: logo and emoji a bit smaller so the cart stays fully on screen. */
@media (max-width: 430px) {
	.pf-brand:has(.pf-secret:not([hidden])) .pf-logo img { height: 20px; }
	.pf-brand .pf-secret__btn { width: 22px; height: 22px; font-size: 16px; }
	.pf-brand { gap: 0; }
}
/* Very small phones (≤340 px): no season secret and tighter tools, so the cart fits. */
@media (max-width: 340px) {
	.pf-secret { display: none !important; }
	.pf-bar:not(.pf-bar--co) .pf-tools { min-width: 0 !important; }
	.pf-bar:not(.pf-bar--co) .pf-tools .pfl__btn { padding: 0 4px; }
	.pf-logo img { height: 20px; }
}
/* Subscription gift ladder under «Suscríbete y ahorra» (subscriptions.php). */
.pf-sg { margin: 10px 0 2px; }
.pf-sg__h { margin: 0 0 10px !important; font-size: 14.5px; font-weight: 700; }
.pf-sg ul { list-style: none; margin: 0; padding: 12px 0 2px; display: grid; grid-auto-flow: column; grid-auto-columns: minmax(104px, 1fr); gap: 8px; overflow-x: auto; scrollbar-width: none; }
.pf-sg ul::-webkit-scrollbar { display: none; }
.pf-sg li { position: relative; display: flex; flex-direction: column; align-items: center; text-align: center; gap: 2px; padding: 18px 6px 10px; border-radius: 14px; background: #eef3f8; }
.pf-sg__pill { position: absolute; top: -10px; padding: 3px 9px; border-radius: 999px; background: #c2410c; color: #fff; font-size: 11px; font-weight: 800; white-space: nowrap; }
.pf-sg__pill s { margin-right: 3px; opacity: .8; }
.pf-sg__em { font-size: 28px; line-height: 1.2; }
.pf-sg li small { font-size: 10.5px; font-weight: 800; letter-spacing: .06em; color: #1f6b45; }
.pf-sg li b { font-size: 12.5px; line-height: 1.2; }
/* Empty mini cart: our content sits next to WooCommerce's (never replacing it), and theirs is hidden. */
.wp-block-woocommerce-empty-mini-cart-contents-block:has(> .pf-mce) > :not(.pf-mce),
.wc-block-mini-cart__empty-cart-wrapper:has(> .pf-mce) > :not(.pf-mce) { display: none !important; }
/* Safety net when the WooCommerce mini cart fails to draw */
.pfc-rescue { display: grid; gap: 10px; padding: 56px 20px 24px; }
.pfc-rescue__h { margin: 0; font-size: 24px; font-weight: 600; }
.pfc-rescue__n { margin: 0 0 6px; color: #5a5a55; }
.pfc-rescue__go { display: flex; align-items: center; justify-content: center; min-height: 52px; border: 1.5px solid #14212c; border-radius: 999px; color: #14212c; font-weight: 600; text-decoration: none; }
.pfc-rescue__go--pay { background: #14212c; color: #fff; }
