/* Tutto sotto .oniq: il tema Hello Elementor dà ai <button> un :focus rosso e hover magenta, qui si ridefiniscono. */
.oniq {
	--oniq-ink: #1c1f26; --oniq-muted: #5b6270; --oniq-line: #dfe3ea; --oniq-bg: #fff; --oniq-soft: #f4f6f9;
	--oniq-accent: #b04e0d; --oniq-accent-ink: #fff; --oniq-radius: 10px;
	color: var(--oniq-ink); font-size: 16px; line-height: 1.5; font-family: "Open Sans", -apple-system, "Segoe UI", Roboto, sans-serif;
}
.oniq *, .oniq *::before, .oniq *::after { box-sizing: border-box; }
.oniq .oniq-sec { font-size: 1.35rem; margin: 0 0 .75rem; }
.oniq .oniq-sub { font-size: 1rem; text-transform: uppercase; letter-spacing: .04em; color: var(--oniq-muted); margin: 1.5rem 0 .5rem; }
.oniq button { font: inherit; cursor: pointer; white-space: normal; letter-spacing: normal; text-transform: none; }
.oniq button:focus-visible, .oniq input:focus-visible, .oniq textarea:focus-visible, .oniq summary:focus-visible { outline: 3px solid var(--oniq-accent); outline-offset: 2px; background-color: revert; }
.oniq-layout { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 32px; align-items: start; }
.oniq-templates { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; }
.oniq .oniq-tpl { text-align: left; background: var(--oniq-soft); color: var(--oniq-ink); border: 1px solid var(--oniq-line); border-radius: var(--oniq-radius); padding: 12px; display: flex; flex-direction: column; gap: 2px; }
.oniq .oniq-tpl span { font-size: .85rem; color: var(--oniq-muted); }
.oniq .oniq-tpl-ico { width: 30px; height: 30px; margin-bottom: 6px; fill: none; stroke: #3FADE0; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; flex: none; }
.oniq .oniq-tpl:focus { background: var(--oniq-soft); color: var(--oniq-ink); border-color: var(--oniq-line); }
.oniq .oniq-tpl.is-active, .oniq .oniq-tpl.is-active:focus { background: #fdeee3; color: var(--oniq-ink); border-color: var(--oniq-accent); box-shadow: 0 0 0 1px var(--oniq-accent); }
.oniq .oniq-tpl.is-active .oniq-tpl-ico { stroke: var(--oniq-accent); }
@media (hover: hover) {
	.oniq .oniq-tpl:hover { background: #fdeee3; color: var(--oniq-ink); border-color: var(--oniq-accent); }
	.oniq .oniq-tpl:hover .oniq-tpl-ico { stroke: var(--oniq-accent); }
}
.oniq-card { border: 1px solid var(--oniq-line); border-radius: var(--oniq-radius); margin-bottom: 8px; background: var(--oniq-bg); }
.oniq-card.oniq-child { margin-left: 16px; }
.oniq-card.is-on { border-color: var(--oniq-accent); box-shadow: 0 0 0 1px var(--oniq-accent); }
.oniq-card.is-disabled { opacity: .55; }
.oniq-card-head { display: flex; gap: 12px; align-items: flex-start; padding: 14px 14px 6px; cursor: pointer; }
.oniq-card-head input { width: 22px; height: 22px; margin-top: 2px; flex: none; accent-color: var(--oniq-accent); }
.oniq-card-name { flex: 1; font-weight: 600; }
.oniq-card-price { white-space: nowrap; font-weight: 600; }
.oniq-card-body { padding: 0 14px 12px 48px; }
.oniq-desc, .oniq-linked, .oniq-need { margin: 0 0 6px; font-size: .9rem; color: var(--oniq-muted); }
.oniq-linked { color: var(--oniq-ink); font-weight: 600; }
.oniq-need:empty, .oniq-linked:empty { display: none; }
.oniq details { font-size: .9rem; color: var(--oniq-muted); margin-bottom: 6px; }
.oniq summary { cursor: pointer; }
.oniq-stepper { display: inline-flex; align-items: center; gap: 8px; margin-top: 4px; }
.oniq-stepper.is-off .oniq-qty-val { color: var(--oniq-muted); }
.oniq .oniq-stepper button { width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--oniq-line); background: var(--oniq-bg); color: var(--oniq-ink); font-size: 1.2rem; line-height: 1; padding: 0; }
.oniq .oniq-stepper button:focus { background: var(--oniq-bg); color: var(--oniq-ink); }
@media (hover: hover) { .oniq .oniq-stepper button:hover { background: var(--oniq-soft); color: var(--oniq-ink); } }
.oniq-qty-val { min-width: 2ch; text-align: center; font-weight: 700; }
.oniq-unit { color: var(--oniq-muted); font-size: .9rem; }
.oniq .oniq-btn { background: var(--oniq-accent); color: var(--oniq-accent-ink); border: 0; border-radius: var(--oniq-radius); padding: 12px 20px; font-weight: 600; width: 100%; }
.oniq .oniq-btn:focus { background: var(--oniq-accent); color: var(--oniq-accent-ink); }
@media (hover: hover) { .oniq .oniq-btn:hover { background: #8f4009; color: var(--oniq-accent-ink); } }
.oniq .oniq-btn:disabled { background: #b8bfcc; cursor: not-allowed; }
.oniq-summary { position: sticky; top: 96px; border: 1px solid var(--oniq-line); border-radius: var(--oniq-radius); padding: 18px; background: var(--oniq-bg); }
.oniq .oniq-sum-bar { display: none; }
.oniq-lines { list-style: none; margin: 0 0 12px; padding: 0; font-size: .92rem; }
.oniq-lines li { display: flex; justify-content: space-between; gap: 12px; padding: 5px 0; border-bottom: 1px solid var(--oniq-line); }
.oniq-lines li span:last-child { white-space: nowrap; }
.oniq-total { display: flex; justify-content: space-between; align-items: baseline; margin: 8px 0; }
.oniq-total strong { font-size: 1.5rem; }
.oniq-total-m strong { font-size: 1.15rem; }
.oniq-note, .oniq-empty { font-size: .85rem; color: var(--oniq-muted); }
.oniq-form { margin-top: 2rem; padding-top: 1rem; border-top: 2px solid var(--oniq-line); }
.oniq-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.oniq-field { margin-bottom: 12px; display: flex; flex-direction: column; gap: 4px; }
.oniq-field label { font-size: .9rem; font-weight: 600; }
.oniq-field input, .oniq-field textarea { border: 1px solid #9aa3b2; border-radius: 8px; padding: 10px 12px; font: inherit; width: 100%; background: #fff; color: var(--oniq-ink); }
.oniq-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.oniq-consent { display: flex; gap: 10px; align-items: flex-start; margin: 4px 0 14px; font-size: .9rem; }
.oniq-consent input { width: 20px; height: 20px; flex: none; margin-top: 2px; }
.oniq-msg { min-height: 1.5em; margin: 0 0 8px; }
.oniq-msg.is-error { color: #b42318; font-weight: 600; }

@media (max-width: 900px) {
	.oniq-layout { grid-template-columns: 1fr; }
	.oniq-grid { grid-template-columns: 1fr; }
	.oniq-card-body { padding-left: 14px; }
	.oniq { padding-bottom: 76px; }
	.oniq-summary { position: fixed; left: 0; right: 0; bottom: 0; top: auto; z-index: 999; border-radius: 14px 14px 0 0; padding: 0; box-shadow: 0 -4px 16px rgba(0,0,0,.12); }
	.oniq .oniq-sum-bar { display: flex; justify-content: space-between; align-items: center; width: 100%; background: var(--oniq-bg); color: var(--oniq-ink); border: 0; border-radius: 14px 14px 0 0; padding: 14px 16px; font-weight: 700; min-height: 56px; }
	.oniq .oniq-sum-bar:hover, .oniq .oniq-sum-bar:focus { background: var(--oniq-bg); color: var(--oniq-ink); }
	.oniq-sum-more { font-weight: 400; color: var(--oniq-accent); font-size: .9rem; }
	.oniq-summary.oniq-out { display: none; }
	.oniq-sum-panel { display: none; padding: 0 16px 16px; max-height: 60vh; overflow: auto; }
	.oniq-summary.is-open .oniq-sum-panel { display: block; }
}
@media (prefers-reduced-motion: no-preference) { .oniq-card { transition: border-color .15s, box-shadow .15s; } }

.oniq-title { font-size: 1.8rem; margin: 0 0 .25rem; }
.oniq-for { margin: 0 0 1rem; color: var(--oniq-muted); }
.oniq-banner { background: #fff7e0; border: 1px solid #f0c36d; border-radius: var(--oniq-radius); padding: 12px 14px; font-weight: 600; }
.oniq-hint { color: var(--oniq-muted); }
.oniq-lock { font-size: .75rem; font-weight: 600; background: #fdeee3; color: var(--oniq-accent); border-radius: 10px; padding: 1px 8px; align-self: flex-start; white-space: nowrap; }
.oniq-disc { display: flex; justify-content: space-between; margin: 4px 0; color: #1a7f37; }
.oniq-compare { font-size: .88rem; background: var(--oniq-soft); border-radius: 8px; padding: 8px 10px; margin: 8px 0; }
.oniq .oniq-link { background: none; border: 0; color: var(--oniq-accent); text-decoration: underline; padding: 4px 0; font-size: .9rem; }
.oniq .oniq-link:focus { background: none; color: var(--oniq-accent); }
@media (hover: hover) { .oniq .oniq-link:hover { background: none; color: #8f4009; } }
.oniq .oniq-btn-ok { background: #1a7f37; margin-top: 4px; }
.oniq .oniq-btn-ok:focus { background: #1a7f37; }
@media (hover: hover) { .oniq .oniq-btn-ok:hover { background: #156a2e; } }
.oniq-actions .oniq-btn { max-width: 340px; display: block; margin-bottom: 8px; }
.oniq input:disabled, .oniq .oniq-card.is-on input:disabled { cursor: not-allowed; }

.oniq-discount { display: flex; gap: 10px; align-items: flex-start; background: #fdeee3; border: 1px dashed var(--oniq-accent); border-radius: 8px; padding: 10px 12px; margin: 12px 0; }
.oniq-discount input { width: 20px; height: 20px; flex: none; margin-top: 2px; accent-color: var(--oniq-accent); }
.oniq-discount label { cursor: pointer; }
.oniq-discount strong { display: block; }
.oniq-discount small { display: block; color: var(--oniq-muted); font-size: .8rem; }

@media (max-width: 480px) { .oniq-card.oniq-child { margin-left: 12px; } }

.oniq-card[hidden] { display: none; }

/* Omaggi e sconti dedicati (preventivi personalizzati) */
.oniq .oniq-gift { background: #e6f4ea; color: #1a7f37; }
.oniq .oniq-gift-price { color: #1a7f37; font-weight: 700; white-space: nowrap; }
.oniq .oniq-gift-price s { color: #6b7280; font-weight: 400; margin-right: 4px; }

/* badge reCAPTCHA (widget invisibile, solo dopo il primo invio) */
.oniq-recaptcha { margin-top: 12px; }
