/* LEMODUS dovanų kuponas. Uses the theme's tokens, with fallbacks for pages that load it alone. */

:root { --vc-accent: #475657; --vc-line: var(--c-line, #e2e1d9); --vc-muted: var(--c-muted, #5a6567); --vc-ink: var(--c-ink, #14191b); --vc-surface: var(--c-surface, #f7f6f2); }

/* ---------- The voucher ---------- */
.l-vc-card { position: relative; display: flex; flex-direction: column; aspect-ratio: 210 / 148; min-height: 300px; width: 100%; overflow: hidden; border-radius: 16px; background: var(--vc-accent); color: #fff; }
.l-vc-card::before { content: ""; position: absolute; top: -6%; right: -7%; width: 60%; aspect-ratio: 720 / 545; background: url(mark-tone.png) center / contain no-repeat; pointer-events: none; }
.l-vc-card > * { position: relative; }
.l-vc-card__head { display: flex; align-items: center; gap: .6rem; padding: 1.35rem 1.5rem 0; }
.l-vc-card__logo { width: 30px; height: auto; }
.l-vc-card__brand { font-size: .92rem; font-weight: 600; letter-spacing: .24em; }
.l-vc-card__body { flex: 1; min-width: 0; display: flex; flex-direction: column; justify-content: center; padding: .75rem 1.5rem; }
.l-vc-card p { margin: 0; }
.l-vc-card__kind { font-size: .72rem; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: #c6c5b9; }
.l-vc-card__amount { font-size: clamp(2.6rem, 2rem + 3.4vw, 4.25rem); font-weight: 600; letter-spacing: -.02em; line-height: 1.08; }
.l-vc-card__tag { font-size: .95rem; color: #eeede7; }
.l-vc-card__greet { margin-top: .6rem; max-width: 100%; font-size: .88rem; line-height: 1.4; overflow-wrap: anywhere; white-space: pre-line; }
.l-vc-card__greet strong { display: block; font-weight: 600; }
.l-vc-card__foot { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .85rem 1.5rem; background: var(--vc-surface); color: var(--vc-ink); }
.l-vc-card__code { min-width: 0; overflow: hidden; font-size: .8rem; font-weight: 600; letter-spacing: .05em; text-overflow: ellipsis; white-space: nowrap; }
.l-vc-card__site { flex: none; font-size: .85rem; font-weight: 600; color: var(--vc-accent); }

/* ---------- Page ---------- */
.l-vc { padding-block: .5rem clamp(3rem, 2rem + 4vw, 6rem); }
.l-vc__top { display: grid; gap: 1.75rem; }
.l-vc__panel { min-width: 0; }
.l-vc__panel > * { margin-block: 0; }
.l-vc__lead { margin-top: .6rem !important; color: var(--vc-muted); max-width: 52ch; }
.l-vc-form { display: grid; gap: 1.25rem; margin-top: 1.5rem !important; }
.l-vc-group { min-width: 0; margin: 0; padding: 0; border: 0; }
.l-vc-group legend { padding: 0; margin-bottom: .5rem; font-size: .9rem; font-weight: 600; }
.l-vc-group--inner { margin-top: .25rem; }
.l-vc-chips { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .5rem; }
.l-vc-chip input, .l-vc-switch input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.l-vc-chip span { display: flex; align-items: center; justify-content: center; min-height: 52px; border: 1px solid var(--vc-line); border-radius: 12px; background: #fff; font-weight: 600; cursor: pointer; transition: border-color .15s, background-color .15s, color .15s; }
.l-vc-chip input:checked + span { border-color: var(--vc-accent); background: var(--vc-accent); color: #fff; }
.l-vc-chip input:focus-visible + span, .l-vc-switch input:focus-visible + span { outline: 2px solid var(--c-cyan, #62929e); outline-offset: 2px; }
.l-vc-switch { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; padding: 4px; border-radius: 12px; background: var(--c-surface-2, #eeede7); }
.l-vc-switch span { display: flex; align-items: center; justify-content: center; min-height: 44px; padding: 0 .5rem; border-radius: 9px; font-size: .92rem; font-weight: 560; text-align: center; cursor: pointer; }
.l-vc-switch input:checked + span { background: #fff; color: var(--vc-ink); box-shadow: 0 0 0 1px var(--vc-line); }
.l-vc-hint { margin: .55rem 0 0; font-size: .85rem; color: var(--vc-muted); }
.l-vc-recipient { display: grid; gap: .9rem; margin-top: .9rem; }
.l-vc-field { display: grid; gap: .3rem; min-width: 0; }
.l-vc-field > span { font-size: .85rem; font-weight: 560; }
.l-vc-field input, .l-vc-field textarea { box-sizing: border-box; width: 100%; min-height: 48px; padding: .7rem .85rem; border: 1px solid var(--vc-line); border-radius: 10px; background: #fff; color: var(--vc-ink); font: inherit; font-size: 1rem; }
.l-vc-field textarea { resize: vertical; }
.l-vc-field input:focus, .l-vc-field textarea:focus { border-color: var(--vc-accent); outline: 0; box-shadow: 0 0 0 1px var(--vc-accent); }
.l-vc-field small { justify-self: end; font-size: .75rem; color: var(--vc-muted); }
.l-vc-buy { width: 100%; background: var(--vc-accent); }
.l-vc-buy:hover { background: #3a4748; }

.l-vc-info { display: grid; gap: 1.25rem; margin-top: clamp(2.5rem, 2rem + 3vw, 4.5rem); padding-top: clamp(2rem, 1.5rem + 2vw, 3rem); border-top: 1px solid var(--vc-line); }
.l-vc-info__item h2, .l-vc-balance h2, .l-vc-terms h2 { margin: 0 0 .4rem; font-size: 1.05rem; font-weight: 600; letter-spacing: -.01em; }
.l-vc-info__item p, .l-vc-terms p { margin: 0; color: var(--vc-muted); font-size: .95rem; line-height: 1.55; }
.l-vc-more { display: grid; gap: 2rem; margin-top: clamp(2rem, 1.5rem + 2vw, 3rem); }
.l-vc-balance { scroll-margin-top: 9rem; padding: 1.25rem; border: 1px solid var(--vc-line); border-radius: 16px; }
.l-vc-check { display: grid; gap: .75rem; margin-top: .75rem; }
.l-vc-result { margin: 0; font-weight: 560; }
.l-vc-result.is-error { color: var(--c-danger, #b3261e); }
.l-vc-terms ul { margin: .75rem 0 0; padding-left: 1.1rem; color: var(--vc-muted); font-size: .95rem; line-height: 1.55; }

@media (min-width: 900px) {
	.l-vc__top { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: clamp(2rem, 4vw, 4.5rem); align-items: start; }
	.l-vc__stage { position: sticky; top: 8rem; }
	.l-vc-info { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 2rem; }
	.l-vc-more { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 3rem; align-items: start; }
	.l-vc-card__head { padding: 1.75rem 2rem 0; }
	.l-vc-card__body { padding: 1rem 2rem; }
	.l-vc-card__foot { padding: 1rem 2rem; }
	.l-vc-card__code { font-size: .92rem; }
}

/* ---------- Homepage and cart ---------- */
.l-vc-promo__inner { display: grid; gap: 2rem; padding: clamp(1.5rem, 1rem + 3vw, 3.5rem); border: 1px solid var(--vc-line); border-radius: 24px; background: var(--vc-surface); }
.l-vc-promo__copy > * { margin-block: 0; }
.l-vc-promo__copy p:last-child { margin-top: 1.25rem; }
.l-vc-promo__card { min-width: 0; }
.l-vc-promo .l-btn { background: var(--vc-accent); }
.l-vc-promo .l-btn:hover { background: #3a4748; }
@media (min-width: 900px) {
	.l-vc-promo__inner { grid-template-columns: minmax(0, 1fr) minmax(0, 420px); align-items: center; gap: 3rem; }
}
.l-vc-carthint { margin-block: 1rem 2.5rem; color: var(--vc-muted); font-size: .95rem; }
.l-vc-carthint a { color: var(--vc-accent); font-weight: 560; }

/* ---------- Cart and checkout ---------- */
.l-vc-pay { display: grid; gap: .6rem; padding: .75rem 16px; }
.l-vc-pay__line { display: grid; gap: .15rem; }
.l-vc-pay__row { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; }
.l-vc-pay__row--sub { font-size: .82rem; color: var(--vc-muted); }
.l-vc-pay__open, .l-vc-pay__remove { padding: 0; border: 0; background: none; color: inherit; font: inherit; text-decoration: underline; text-underline-offset: 2px; cursor: pointer; }
.l-vc-pay__open { justify-self: start; }
.l-vc-pay__form { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .5rem; }
.l-vc-pay__form input { box-sizing: border-box; width: 100%; min-height: 44px; padding: .5rem .7rem; border: 1px solid var(--vc-line); border-radius: 8px; font: inherit; font-size: 16px; }
.l-vc-pay__form button { min-height: 44px; padding: 0 1rem; border: 0; border-radius: 8px; background: var(--vc-accent); color: #fff; font: inherit; font-weight: 560; cursor: pointer; }
.l-vc-pay__form button:disabled { opacity: .6; }
.l-vc-pay__error { margin: 0; color: var(--c-danger, #b3261e); font-size: .85rem; }
.l-vc-pay__note { margin: 0; color: var(--vc-muted); font-size: .85rem; }

/* ---------- Order confirmation and account ---------- */
.l-vc-order { margin-block: 2rem; }
.l-vc-list { display: grid; gap: 1rem; margin: 1rem 0 0; padding: 0; list-style: none; }
.l-vc-list__item { padding: 1.1rem 1.25rem; border: 1px solid var(--vc-line); border-radius: 14px; }
.l-vc-list__item p { margin: .5rem 0 0; }
.l-vc-list__head { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; }
.l-vc-list__head strong { font-size: 1.3rem; }
.l-vc-list__head span { color: var(--vc-muted); font-size: .9rem; }
.l-vc-list__code { font-size: 1.05rem; font-weight: 600; letter-spacing: .05em; overflow-wrap: anywhere; }
.l-vc-list__meta { color: var(--vc-muted); font-size: .9rem; }
