/* PesoClaro — flujo de compra: elegir plan, checkout y confirmación (prefijo pf-) */
.pf-hidden { display: none !important; }
.pf-wrap { width: 100%; max-width: 1060px; margin: 0 auto; padding: 0 20px; }
.pf-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 15px 28px; border-radius: 999px; font-weight: 800; font-size: 1rem; text-decoration: none; border: 2px solid transparent; cursor: pointer; transition: transform .15s, box-shadow .15s, background .15s; line-height: 1.1; }
.pf-btn:hover { transform: translateY(-1px); }
.pf-btn--solid { background: var(--primary); color: #fff; box-shadow: 0 10px 22px rgba(47,122,85,.28); }
.pf-btn--solid:hover { background: var(--primary-dark); color: #fff; }
.pf-btn--line { background: #fff; color: var(--primary); border-color: #BFD8C8; }
.pf-btn--wa { background: #25D366; color: #fff; }

/* Logo: fija el tamaño aunque WooCommerce fuerce "img { height:auto }" */
.pc-header__logo .pc-logo-mark, .pc-footer .pc-logo-mark { height: 34px !important; width: auto !important; max-width: none !important; }
.pc-footer .pc-logo-mark { height: 30px !important; }

/* ───── Elegir plan (/agendar) ───── */
.pf-pick { padding: calc(var(--header-h) + 36px) 0 72px; background: linear-gradient(180deg, #F0F7F2, var(--cream) 60%); min-height: 70vh; }
.pf-pick__head { text-align: center; max-width: 640px; margin: 0 auto 30px; }
.pf-pick__head h1 { font-size: clamp(1.7rem, 4vw, 2.4rem); font-weight: 800; letter-spacing: -.02em; color: var(--ink); margin: 0 0 8px; }
.pf-pick__head p { color: #52645B; margin: 0; }
.pf-steps { display: flex; justify-content: center; gap: 8px 18px; flex-wrap: wrap; margin: 0 0 18px; font-size: .82rem; color: #6A7C73; }
.pf-steps__i { display: inline-flex; align-items: center; gap: 7px; font-weight: 600; }
.pf-steps__i b { display: inline-grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; background: #E1EDE5; color: #3E5248; font-size: .72rem; }
.pf-steps__i.is-done b { background: var(--primary); color: #fff; }
.pf-steps__i.is-now { color: var(--ink); font-weight: 800; }
.pf-steps__i.is-now b { background: var(--ink); color: #fff; }
.pf-plans { display: grid; gap: 16px; grid-template-columns: minmax(0, 1fr); }
.pf-plan { position: relative; background: #fff; border: 1px solid #DDEBE1; border-radius: 22px; padding: 26px 22px; display: flex; flex-direction: column; text-decoration: none; color: inherit; transition: transform .15s, box-shadow .15s; }
.pf-plan:hover { transform: translateY(-3px); box-shadow: 0 16px 36px rgba(20,60,40,.12); }
.pf-plan--pop { border: 2px solid var(--primary); box-shadow: 0 16px 38px rgba(47,122,85,.16); }
.pf-plan__badge { position: absolute; top: -13px; right: 20px; background: var(--accent); color: #fff; font-size: .72rem; font-weight: 800; padding: 5px 12px; border-radius: 999px; }
.pf-plan h2 { font-size: 1.3rem; margin: 0 0 4px; }
.pf-plan__tag { color: #52645B; font-size: .88rem; margin: 0 0 14px; min-height: 2.6em; }
.pf-plan__price small { display: block; color: #6A7C73; font-size: .78rem; font-weight: 700; }
.pf-plan__price strong { font-size: 2.2rem; line-height: 1.1; letter-spacing: -.02em; color: var(--ink); }
.pf-plan__price span { display: block; font-size: .82rem; color: #6A7C73; margin-bottom: 14px; }
.pf-plan ul { list-style: none; margin: 0 0 20px; padding: 0; display: grid; gap: 8px; flex: 1; font-size: .9rem; }
.pf-plan li::before { content: "✓"; color: var(--primary); font-weight: 800; margin-right: 8px; }
.pf-plan .pf-btn { width: 100%; }
.pf-pick__foot { text-align: center; color: #6A7C73; font-size: .85rem; margin-top: 22px; }
.pf-pick__foot a { color: var(--primary); text-decoration: underline; }
@media (min-width: 820px) { .pf-plans { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

/* ───── Checkout (WooCommerce clásico, una sola columna) ───── */
body.woocommerce-checkout .pc-inner-page { padding: calc(var(--header-h) + 22px) 0 64px; background: linear-gradient(180deg, #F0F7F2, var(--cream) 50%); }
body.woocommerce-checkout .pc-inner-page .pc-container { max-width: 680px !important; }
body.woocommerce-checkout .pc-inner-page__title { text-align: center; font-size: 1.7rem; font-weight: 800; letter-spacing: -.02em; margin: 6px 0 14px; color: var(--ink); }
body.woocommerce-checkout .woocommerce { font-family: var(--font-body); }
body.woocommerce-checkout form.checkout { display: block; }
body.woocommerce-checkout #customer_details { float: none; width: 100%; display: block; }
body.woocommerce-checkout #customer_details .col-1, body.woocommerce-checkout #customer_details .col-2 { float: none; width: 100%; max-width: none; padding: 0; }
body.woocommerce-checkout .woocommerce-billing-fields, body.woocommerce-checkout #order_review { background: #fff; border: 1px solid #DDEBE1; border-radius: 20px; padding: 22px 20px; box-shadow: 0 10px 28px rgba(20,60,40,.06); margin-bottom: 16px; }
body.woocommerce-checkout .woocommerce-billing-fields > h3, body.woocommerce-checkout #order_review_heading { font-size: 1.05rem; font-weight: 800; margin: 0 0 14px; color: var(--ink); }
body.woocommerce-checkout #order_review_heading { margin: 8px 4px 8px; }
body.woocommerce-checkout .woocommerce-billing-fields > h3::before { content: "1"; display: inline-grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: var(--primary); color: #fff; font-size: .78rem; margin-right: 9px; }
body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper { display: grid; gap: 12px; grid-template-columns: minmax(0, 1fr); }
body.woocommerce-checkout form .form-row { float: none; width: 100%; margin: 0; padding: 0; }
body.woocommerce-checkout form .form-row label { display: block; font-size: .8rem; font-weight: 700; color: #3E5248; margin: 0 0 5px; }
body.woocommerce-checkout form .form-row .required { color: #C2410C; text-decoration: none; }
body.woocommerce-checkout form .form-row .optional { display: none; }
body.woocommerce-checkout form .input-text, body.woocommerce-checkout form select { width: 100%; height: 50px; border: 1.5px solid #D5E3DA; border-radius: 12px; padding: 0 14px; font-size: 1rem; background: #fff; color: var(--ink); box-shadow: none; }
body.woocommerce-checkout form .input-text:focus, body.woocommerce-checkout form select:focus { outline: none; border-color: var(--primary); box-shadow: 0 0 0 3px rgba(47,122,85,.15); }
body.woocommerce-checkout form .woocommerce-invalid .input-text { border-color: #DC2626; }
@media (min-width: 560px) { body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper { grid-template-columns: repeat(2, minmax(0, 1fr)); } body.woocommerce-checkout form .form-row-wide { grid-column: 1 / -1; } }

body.woocommerce-checkout .pf-steps { margin-bottom: 4px; }
.pf-rut-msg { margin-top: 6px; font-size: .8rem; padding: 8px 11px; border-radius: 10px; }
.pf-rut-msg--error { background: #FEE2E2; color: #991B1B; }
.pf-rut-msg--info { background: #E7F1FB; color: #1E4E8C; }

/* Cupón: tarjeta limpia y discreta */
body.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info { margin: 0 0 14px; padding: 12px 16px 12px 44px; border: 1.5px dashed #9CC6AB; border-top: 1.5px dashed #9CC6AB; background: #F2F8F3; color: #2C5A42; border-radius: 14px; font-size: .9rem; position: relative; }
body.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info::before { content: ""; position: absolute; left: 14px; top: 12px; width: 22px; height: 22px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232F7A55' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 9a2 2 0 002-2V6h14v1a2 2 0 002 2v6a2 2 0 00-2 2v1H5v-1a2 2 0 00-2-2z'/%3E%3Cpath d='M12 7v10' stroke-dasharray='2 2'/%3E%3C/svg%3E") no-repeat center / contain; }
body.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info a { color: var(--primary); font-weight: 800; text-decoration: underline; }
body.woocommerce-checkout form.checkout_coupon { margin: -4px 0 16px; padding: 14px 16px; border: 1px solid #DDEBE1; border-radius: 14px; background: #fff; overflow: hidden; }
body.woocommerce-checkout form.checkout_coupon p { margin: 0; }
body.woocommerce-checkout form.checkout_coupon .form-row-first { float: left; width: calc(100% - 128px); }
body.woocommerce-checkout form.checkout_coupon .form-row-last { float: right; width: 116px; }
body.woocommerce-checkout form.checkout_coupon .input-text { height: 46px; }
body.woocommerce-checkout form.checkout_coupon .button { width: 100%; height: 46px; border-radius: 12px; background: var(--ink); color: #fff; font-weight: 800; border: 0; }
.woocommerce-message, .woocommerce-error, .woocommerce-info { border-radius: 14px; }

/* Resumen */
body.woocommerce-checkout table.shop_table { border: 0; margin: 0 0 14px; width: 100%; border-collapse: collapse; }
body.woocommerce-checkout table.shop_table th, body.woocommerce-checkout table.shop_table td { border: 0; border-bottom: 1px solid #EDF3EF; padding: 11px 0; font-size: .92rem; background: transparent; }
body.woocommerce-checkout table.shop_table thead { display: none; }
body.woocommerce-checkout table.shop_table .cart_item td.product-name { font-weight: 700; }
body.woocommerce-checkout table.shop_table .product-quantity { display: none; }
body.woocommerce-checkout table.shop_table tfoot th { font-weight: 600; color: #52645B; text-align: left; }
body.woocommerce-checkout table.shop_table tr.order-total th, body.woocommerce-checkout table.shop_table tr.order-total td { font-size: 1.15rem; font-weight: 800; color: var(--ink); border-bottom: 0; }
.pf-luego { display: block; font-weight: 500; color: #6A7C73; font-size: .78rem; margin-top: 3px; line-height: 1.35; }

/* Pago */
body.woocommerce-checkout #payment { background: transparent; border-radius: 0; }
body.woocommerce-checkout #payment ul.payment_methods { padding: 0; border: 0; margin: 0 0 12px; }
body.woocommerce-checkout #payment ul.payment_methods li { list-style: none; margin: 0 0 8px; }
body.woocommerce-checkout #payment div.payment_box { background: #F5FAF6; border-radius: 12px; color: #3E5248; }
body.woocommerce-checkout #payment div.payment_box::before { display: none; }
body.woocommerce-checkout #payment .place-order { padding: 0; margin: 0; }
body.woocommerce-checkout #place_order { width: 100%; height: 56px; border-radius: 999px; background: var(--primary); color: #fff; font-size: 1.05rem; font-weight: 800; border: 0; box-shadow: 0 12px 26px rgba(47,122,85,.3); cursor: pointer; }
body.woocommerce-checkout #place_order:hover { background: var(--primary-dark); }
body.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper { font-size: .8rem; color: #52645B; margin-bottom: 12px; }
.pc-footer .pc-logo-text { gap: 0 !important; }
.pc-footer .pc-logo-mark { margin-right: 9px; }
.pf-secure { text-align: center; font-size: .78rem; color: #6A7C73; margin: 12px 0 0; }

/* Pedido fallido / recibido (WooCommerce) */
body.woocommerce-order-received .pc-inner-page .pc-container { max-width: 680px !important; }
body.woocommerce-order-received .woocommerce-order { background: #fff; border: 1px solid #DDEBE1; border-radius: 20px; padding: 24px 22px; }
body.woocommerce-order-received .woocommerce-thankyou-order-failed, body.woocommerce-order-received .woocommerce-notice { font-weight: 700; }
body.woocommerce-order-received .woocommerce-thankyou-order-failed-actions { display: flex; gap: 10px; flex-wrap: wrap; }
body.woocommerce-order-received .woocommerce-thankyou-order-failed-actions .button { border-radius: 999px; background: var(--primary); color: #fff; padding: 13px 22px; font-weight: 800; }

/* ───── Confirmación ───── */
.pf-ok { padding: calc(var(--header-h) + 34px) 0 72px; background: linear-gradient(180deg, #E9F4EC, var(--cream) 55%); }
.pf-ok__card { max-width: 640px; margin: 0 auto; padding: 0 20px; text-align: center; }
.pf-ok__check { width: 84px; height: 84px; border-radius: 50%; margin: 0 auto 16px; display: grid; place-items: center; color: #fff; background: linear-gradient(145deg, var(--blue-600), var(--blue-800)); box-shadow: 0 14px 30px rgba(31,81,57,.3), 0 0 0 10px rgba(47,122,85,.12); }
.pf-ok__check svg { width: 42px; height: 42px; }
.pf-ok h1 { font-size: clamp(1.6rem, 5vw, 2.2rem); font-weight: 800; letter-spacing: -.02em; margin: 0 0 8px; color: var(--ink); }
.pf-ok__lead { color: #3E5248; margin: 0 auto 22px; max-width: 46ch; }
.pf-box { background: #fff; border: 1px solid #DDEBE1; border-radius: 20px; padding: 22px 20px; margin: 0 0 14px; text-align: left; box-shadow: 0 10px 26px rgba(20,60,40,.06); }
.pf-box--cta { text-align: center; border: 2px solid var(--primary); }
.pf-box h2 { font-size: 1.1rem; margin: 0 0 6px; color: var(--ink); }
.pf-box p { margin: 0 0 14px; color: #52645B; font-size: .92rem; }
.pf-box--cta .pf-btn, .pf-box--cta .latepoint-book-button { width: 100%; max-width: 380px; }
.pf-box--cta .latepoint-book-button { background: var(--primary) !important; color: #fff !important; border-radius: 999px !important; padding: 16px 26px !important; font-weight: 800 !important; font-size: 1.05rem !important; border: 0 !important; box-shadow: 0 12px 26px rgba(47,122,85,.3); }
.pf-resumen { display: grid; gap: 8px; font-size: .9rem; }
.pf-resumen div { display: flex; justify-content: space-between; gap: 12px; border-bottom: 1px solid #EDF3EF; padding-bottom: 8px; }
.pf-resumen div:last-child { border: 0; padding: 0; }
.pf-resumen span { color: #6A7C73; }
.pf-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.pf-list li { display: flex; gap: 12px; align-items: flex-start; font-size: .92rem; color: #3E5248; }
.pf-list li b { display: block; color: var(--ink); }
.pf-list i { flex: none; width: 30px; height: 30px; border-radius: 50%; background: var(--mint); color: var(--primary); display: grid; place-items: center; font-style: normal; font-weight: 800; font-size: .85rem; }
.pf-ok__links { display: flex; gap: 10px; flex-wrap: wrap; justify-content: center; margin-top: 6px; }
.pf-ok__links .pf-btn { padding: 12px 20px; font-size: .92rem; }

.pf-box--cta .latepoint-book-button-wrapper { margin-top: 10px; display: flex; justify-content: center; }
.pf-box--cta .latepoint-book-button { display: inline-block; text-align: center; }

body.woocommerce-checkout form.checkout_coupon .screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
body.woocommerce-checkout form.checkout_coupon .input-text { font-size: 16px; }

.pf-fail { background: #FFF6E5; border: 1px solid #F5D9A0; color: #6B4A0A; border-radius: 14px; padding: 14px 16px; margin: 0 0 16px; font-size: .92rem; }
.pf-fail p { margin: 6px 0 0; color: inherit; }
.pf-fail a { color: #8A5A00; font-weight: 800; text-decoration: underline; }

/* ───── Verificación de correo / WhatsApp ───── */
.pf-ver { margin-top: 8px; }
.pf-ver__row, .pf-ver__code { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin-top: 6px; }
.pf-ver__code input { flex: 1 1 150px; height: 44px; border: 1.5px solid #D5E3DA; border-radius: 12px; padding: 0 12px; font-size: 16px; letter-spacing: 3px; }
.pf-ver__btn { height: 40px; padding: 0 18px; border-radius: 999px; border: 1.5px solid var(--primary); background: #fff; color: var(--primary); font-weight: 800; font-size: .86rem; cursor: pointer; }
.pf-ver__btn:hover { background: #F0F7F3; } .pf-ver__btn:disabled { opacity: .6; }
.pf-ver__ok { color: #15803D; font-weight: 800; font-size: .9rem; }
.pf-ver__msg { font-size: .82rem; margin-top: 6px; color: #52645B; min-height: 0; }
.pf-ver__msg.is-ok { color: #15803D; } .pf-ver__msg.is-err { color: #B91C1C; }
input.is-verified { border-color: #15803D !important; background: #F3FBF6 !important; }
