/* OnlyFinn's plugin styles. Colour/font tokens (--of-*) come from the Elementor kit. */

/* Prices */
.of-price-from { display: inline-flex; align-items: baseline; gap: 0; }
.of-price-from__suffix { font-size: .8em; }
.of-price-net { display: block; margin-top: .25em; font-size: 14px; color: var(--of-muted, #8F876F); font-weight: 400; }
.of-price-ask { color: var(--of-muted, #8F876F); }
.of-price-note { margin-top: 18px; font-size: 15px; color: var(--of-muted, #8F876F); max-width: 60ch; }
.of-price-note a { color: var(--of-gold, #F1E2A3); }
.of-quote p { margin: 0 0 14px; color: var(--of-text, #D9CFAE); }

/* Deposit rows */
.of-deposit th, .of-deposit td, .of-balance th, .of-balance td { font-weight: 400; color: inherit; }
.of-deposit th, .of-deposit td { font-weight: 600; }
.of-deposit-note, .of-deposit-instructions { font-size: 15px; line-height: 1.55; }

/* Sauna chooser */
.of-chooser { font-family: var(--of-sans); color: var(--of-text); }
.of-chooser__steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; counter-reset: ofstep; }
.of-chooser__step { counter-increment: ofstep; }
.of-chooser fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
.of-chooser__q { font-family: var(--of-serif); font-size: 24px; line-height: 1.25; color: var(--of-gold); padding: 0; margin: 0 0 16px; }
.of-chooser__q::before { content: counter(ofstep) ". "; color: var(--of-bronze); }
.of-chooser__opts { display: grid; gap: 10px; }
.of-chooser__opt { position: relative; display: grid; gap: 2px; padding: 14px 16px 14px 46px; border: 1px solid var(--of-hair); border-radius: 3px; cursor: pointer; transition: border-color .2s ease, background-color .2s ease; }
.of-chooser__opt:hover { border-color: rgba(241,226,163,.45); }
.of-chooser__opt input { position: absolute; left: 16px; top: 17px; width: 18px; height: 18px; margin: 0; accent-color: var(--of-gold); }
.of-chooser__opt:has(input:checked) { border-color: var(--of-gold); background: var(--of-surface); }
.of-chooser__opt:has(input:focus-visible) { outline: 2px solid var(--of-gold); outline-offset: 3px; }
.of-chooser__label { color: var(--of-gold); font-weight: 500; }
.of-chooser__hint { font-size: 14px; color: var(--of-muted); }

.of-chooser__results { margin-top: 48px; border-top: 1px solid var(--of-hair); padding-top: 40px; }
.of-chooser__waiting { color: var(--of-muted); margin: 0; }
.of-chooser__result:not([hidden]) { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 48px; align-items: center; }
.of-chooser__img img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 2px; }
.of-chooser__kicker { margin: 0 0 6px; color: var(--of-muted); font-size: 15px; }
.of-chooser__name { font-family: var(--of-serif); font-weight: 400; font-size: 38px; line-height: 1.1; color: var(--of-gold); margin: 0 0 14px; }
.of-chooser__desc p { margin: 0 0 12px; max-width: 60ch; }
.of-chooser__price { font-size: 22px; color: var(--of-gold); margin: 8px 0 20px; }
.of-chooser__big { color: var(--of-text); border-left: 2px solid var(--of-bronze); padding-left: 14px; margin: 0 0 20px; }
.of-chooser__actions { display: flex; flex-wrap: wrap; gap: 12px; }
.of-chooser__btn { display: inline-block; font-family: var(--of-sans); font-size: 16px; padding: 15px 26px; border: 1px solid rgba(241,226,163,.5); border-radius: 3px; color: var(--of-gold); font-weight: 600; text-decoration: none; transition: background-color .2s ease, color .2s ease; }
.of-chooser__btn:hover { background: var(--of-gold); color: #000; }
.of-chooser__btn--primary { background: var(--of-gold); border-color: var(--of-gold); color: #000; }
.of-chooser__btn--primary:hover { background: transparent; color: var(--of-gold); }

@media (max-width: 1024px) {
	.of-chooser__steps { grid-template-columns: 1fr; gap: 36px; }
	.of-chooser__result:not([hidden]) { grid-template-columns: 1fr; gap: 24px; }
}
@media (max-width: 767px) {
	.of-chooser__name { font-size: 30px; }
	.of-chooser__btn { width: 100%; text-align: center; }
}

/* ---- Product data shortcodes ---- */
.of-facts-line { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.of-facts-line li { margin: 0 !important; padding: 5px 12px; border: 1px solid var(--of-hair); border-radius: 999px; color: var(--of-text); font-size: 14px; line-height: 1.3; white-space: nowrap; }
.of-card-facts .of-facts-line li { font-size: 13px; padding: 4px 10px; color: var(--of-muted); }

.of-specs { margin: 0; border-top: 1px solid var(--of-hair); }
.of-specs__row { display: grid; grid-template-columns: minmax(120px, 34%) 1fr; gap: 24px; padding: 14px 0; border-bottom: 1px solid var(--of-hair); }
.of-specs dt { color: var(--of-muted); font-size: 15px; }
.of-specs dd { margin: 0; color: var(--of-text); }

.of-equip { list-style: none; counter-reset: ofeq; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 40px; }
.of-equip li { counter-increment: ofeq; display: flex; gap: 18px; align-items: baseline; padding: 20px 0; border-top: 1px solid var(--of-hair); margin: 0 !important; font-family: var(--of-serif); font-size: 22px; line-height: 1.3; color: var(--of-gold); }
.of-equip li::before { content: counter(ofeq, decimal-leading-zero); font-family: var(--of-sans); font-size: 13px; color: var(--of-bronze); letter-spacing: .04em; min-width: 22px; }

.of-values { list-style: none; margin: 8px 0 0; padding: 0; border-top: 1px solid var(--of-hair); }
.of-values li { display: grid; grid-template-columns: 120px 1fr; gap: 16px; padding: 13px 0; border-bottom: 1px solid var(--of-hair); margin: 0 !important; font-size: 15px; line-height: 1.5; }
.of-values__label { color: var(--of-muted); }
.of-values__text { color: var(--of-text); }
.of-values__call { margin: 16px 0 0; font-size: 15px; color: var(--of-muted); }
.of-values__call a { color: var(--of-gold); white-space: nowrap; }

.of-pair { display: grid; grid-template-columns: 112px 1fr; gap: 20px; align-items: center; padding: 16px; border: 1px solid var(--of-hair); border-radius: 3px; text-decoration: none; transition: border-color .2s ease, background-color .2s ease; }
.of-pair:hover { border-color: rgba(241,226,163,.5); background: var(--of-surface); }
.of-pair__img img { display: block; width: 112px; height: 84px; object-fit: cover; border-radius: 2px; }
.of-pair__body { display: grid; gap: 2px; }
.of-pair__label { color: var(--of-muted); font-size: 14px; }
.of-pair__name { font-family: var(--of-serif); font-size: 24px; color: var(--of-gold); line-height: 1.2; }
.of-pair__price, .of-pair__price * { color: var(--of-text); font-size: 15px; }
.of-pair__price .of-price-net { display: none; }

.of-mood { display: block; width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 2px; }
.of-cat-img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: cover; border-radius: 2px; }

.of-cat-filter { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 4px; }
.of-cat-filter a { padding: 9px 18px; border: 1px solid var(--of-hair); border-radius: 999px; color: var(--of-text); font-size: 15px; text-decoration: none; transition: border-color .2s ease, color .2s ease; }
.of-cat-filter a:hover { border-color: rgba(241,226,163,.5); color: var(--of-gold); }
.of-cat-filter a[aria-current] { background: var(--of-gold); border-color: var(--of-gold); color: #000; }

/* Mobile buy bar */
.of-mbar { display: none; }
@media (max-width: 767px) {
	.of-mbar:not([hidden]) { display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 998; align-items: center; justify-content: space-between; gap: 12px;
		padding: 10px 16px calc(10px + env(safe-area-inset-bottom)); background: rgba(0,0,0,.94); border-top: 1px solid var(--of-hair); backdrop-filter: blur(8px); transition: transform .25s ease; }
	.of-mbar.is-hidden { transform: translateY(110%); }
	.of-mbar__info { display: grid; min-width: 0; }
	.of-mbar__name { font-family: var(--of-serif); color: var(--of-gold); font-size: 17px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
	.of-mbar__price, .of-mbar__price * { font-size: 14px; color: var(--of-text); }
	.of-mbar__price .of-price-net { display: none; }
	.of-mbar__btn { flex: 0 0 auto; padding: 12px 20px; background: var(--of-gold); color: #000 !important; border-radius: 3px; font-weight: 600; text-decoration: none; }
	.of-equip { grid-template-columns: 1fr; }
	.of-equip li { font-size: 19px; padding: 16px 0; }
	.of-specs__row { grid-template-columns: 1fr; gap: 2px; padding: 12px 0; }
	.of-values li { grid-template-columns: 1fr; gap: 0; }
	.of-pair { grid-template-columns: 84px 1fr; gap: 14px; padding: 12px; }
	.of-pair__img img { width: 84px; height: 64px; }
	.of-pair__name { font-size: 20px; }
	.of-mood { aspect-ratio: 4 / 3; }
}

/* Optional extras on sauna products */
.of-extras { border: 0; margin: 4px 0 22px; padding: 0; min-width: 0; }
.of-extras__title { font-family: var(--of-serif); font-size: 20px; color: var(--of-gold); padding: 0; margin: 0 0 4px; }
.of-extras__hint { margin: 0 0 12px; font-size: 14px; color: var(--of-muted); }
.of-extras__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.of-extras__opt { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border: 1px solid var(--of-hair); border-radius: 3px; cursor: pointer; font-size: 15px; line-height: 1.3; color: var(--of-text); transition: border-color .2s ease, background-color .2s ease; }
.of-extras__opt:hover { border-color: rgba(241,226,163,.45); }
.of-extras__opt input { flex: 0 0 auto; width: 17px; height: 17px; margin: 0; accent-color: var(--of-gold); }
.of-extras__opt:has(input:checked) { border-color: var(--of-gold); background: var(--of-surface); }
.of-extras__opt:has(input:focus-visible) { outline: 2px solid var(--of-gold); outline-offset: 2px; }
.of-values__text a { color: var(--of-gold); }
@media (max-width: 767px) { .of-extras__list { grid-template-columns: 1fr; } }

/* WooCommerce show-password eye: Astra drops these rules from its WC layout CSS */
.woocommerce form .password-input { display: flex; flex-direction: column; justify-content: center; position: relative; }
.woocommerce form .password-input input[type=password], .woocommerce form .password-input input[type=text] { padding-right: 2.75rem; }
.woocommerce form .password-input input::-ms-reveal { display: none; }
.woocommerce form .show-password-input, .woocommerce form .show-password-input:hover, .woocommerce form .show-password-input:focus { position: absolute; top: 50%; right: .8em; transform: translateY(-50%); width: 20px; height: 20px; min-height: 0; margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; color: var(--of-gold); cursor: pointer; }
.woocommerce form .show-password-input::before { content: ""; display: block; width: 20px; height: 20px; background: currentColor; -webkit-mask: url('data:image/svg+xml,<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M17.3 3.3C16.9 2.9 16.2 2.9 15.7 3.3L13.3 5.7C12.2437 5.3079 11.1267 5.1048 10 5.1C6.2 5.2 2.8 7.2 1 10.5C1.2 10.9 1.5 11.3 1.8 11.7C2.6 12.8 3.6 13.7 4.7 14.4L3 16.1C2.6 16.5 2.5 17.2 3 17.7C3.4 18.1 4.1 18.2 4.6 17.7L17.3 4.9C17.7 4.4 17.7 3.7 17.3 3.3ZM6.7 12.3L5.4 13.6C4.2 12.9 3.1 11.9 2.3 10.7C3.5 9 5.1 7.8 7 7.2C5.7 8.6 5.6 10.8 6.7 12.3ZM10.1 9C9.6 8.5 9.7 7.7 10.2 7.2C10.7 6.8 11.4 6.8 11.9 7.2L10.1 9ZM18.3 9.5C17.8 8.8 17.2 8.1 16.5 7.6L15.5 8.6C16.3 9.2 17 9.9 17.6 10.8C15.9 13.4 13 15 9.9 15H9.1L8.1 16C8.8 15.9 9.4 16 10 16C13.3 16 16.4 14.4 18.3 11.7C18.6 11.3 18.8 10.9 19.1 10.5C18.8 10.2 18.6 9.8 18.3 9.5ZM14 10L10 14C12.2 14 14 12.2 14 10Z" fill="%23111111"/></svg>') no-repeat center / contain; mask: url('data:image/svg+xml,<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M17.3 3.3C16.9 2.9 16.2 2.9 15.7 3.3L13.3 5.7C12.2437 5.3079 11.1267 5.1048 10 5.1C6.2 5.2 2.8 7.2 1 10.5C1.2 10.9 1.5 11.3 1.8 11.7C2.6 12.8 3.6 13.7 4.7 14.4L3 16.1C2.6 16.5 2.5 17.2 3 17.7C3.4 18.1 4.1 18.2 4.6 17.7L17.3 4.9C17.7 4.4 17.7 3.7 17.3 3.3ZM6.7 12.3L5.4 13.6C4.2 12.9 3.1 11.9 2.3 10.7C3.5 9 5.1 7.8 7 7.2C5.7 8.6 5.6 10.8 6.7 12.3ZM10.1 9C9.6 8.5 9.7 7.7 10.2 7.2C10.7 6.8 11.4 6.8 11.9 7.2L10.1 9ZM18.3 9.5C17.8 8.8 17.2 8.1 16.5 7.6L15.5 8.6C16.3 9.2 17 9.9 17.6 10.8C15.9 13.4 13 15 9.9 15H9.1L8.1 16C8.8 15.9 9.4 16 10 16C13.3 16 16.4 14.4 18.3 11.7C18.6 11.3 18.8 10.9 19.1 10.5C18.8 10.2 18.6 9.8 18.3 9.5ZM14 10L10 14C12.2 14 14 12.2 14 10Z" fill="%23111111"/></svg>') no-repeat center / contain; }
.woocommerce form .show-password-input.display-password::before { content: ""; display: block; width: 20px; height: 20px; background: currentColor; -webkit-mask: url('data:image/svg+xml,<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M18.3 9.49999C15 4.89999 8.50002 3.79999 3.90002 7.19999C2.70002 8.09999 1.70002 9.29999 0.900024 10.6C1.10002 11 1.40002 11.4 1.70002 11.8C5.00002 16.4 11.3 17.4 15.9 14.2C16.8 13.5 17.6 12.8 18.3 11.8C18.6 11.4 18.8 11 19.1 10.6C18.8 10.2 18.6 9.79999 18.3 9.49999ZM10.1 7.19999C10.6 6.69999 11.4 6.69999 11.9 7.19999C12.4 7.69999 12.4 8.49999 11.9 8.99999C11.4 9.49999 10.6 9.49999 10.1 8.99999C9.60003 8.49999 9.60003 7.69999 10.1 7.19999ZM10 14.9C6.90002 14.9 4.00002 13.3 2.30002 10.7C3.50002 8.99999 5.10002 7.79999 7.00002 7.19999C6.30002 7.99999 6.00002 8.89999 6.00002 9.89999C6.00002 12.1 7.70002 14 10 14C12.2 14 14.1 12.3 14.1 9.99999V9.89999C14.1 8.89999 13.7 7.89999 13 7.19999C14.9 7.79999 16.5 8.99999 17.7 10.7C16 13.3 13.1 14.9 10 14.9Z" fill="%23111111"/></svg>') no-repeat center / contain; mask: url('data:image/svg+xml,<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M18.3 9.49999C15 4.89999 8.50002 3.79999 3.90002 7.19999C2.70002 8.09999 1.70002 9.29999 0.900024 10.6C1.10002 11 1.40002 11.4 1.70002 11.8C5.00002 16.4 11.3 17.4 15.9 14.2C16.8 13.5 17.6 12.8 18.3 11.8C18.6 11.4 18.8 11 19.1 10.6C18.8 10.2 18.6 9.79999 18.3 9.49999ZM10.1 7.19999C10.6 6.69999 11.4 6.69999 11.9 7.19999C12.4 7.69999 12.4 8.49999 11.9 8.99999C11.4 9.49999 10.6 9.49999 10.1 8.99999C9.60003 8.49999 9.60003 7.69999 10.1 7.19999ZM10 14.9C6.90002 14.9 4.00002 13.3 2.30002 10.7C3.50002 8.99999 5.10002 7.79999 7.00002 7.19999C6.30002 7.99999 6.00002 8.89999 6.00002 9.89999C6.00002 12.1 7.70002 14 10 14C12.2 14 14.1 12.3 14.1 9.99999V9.89999C14.1 8.89999 13.7 7.89999 13 7.19999C14.9 7.79999 16.5 8.99999 17.7 10.7C16 13.3 13.1 14.9 10 14.9Z" fill="%23111111"/></svg>') no-repeat center / contain; }
/* Form fields use the site font (Astra no longer sets one) */
body input, body select, body textarea { font-family: var(--of-sans, inherit); }
