/* /slevova-akce – vzhled podle Lovable projektu "Elixirman Promo Refresh" */
.xn {
	--xn-bg: oklch(0.975 0.008 120);
	--xn-fg: oklch(0.22 0.03 150);
	--xn-card: #fff;
	--xn-primary: oklch(0.36 0.08 155);
	--xn-secondary: oklch(0.95 0.02 140);
	--xn-muted-fg: oklch(0.5 0.02 150);
	--xn-accent-fg: oklch(0.3 0.06 150);
	--xn-border: oklch(0.9 0.015 130);
	--xn-festive: oklch(0.55 0.21 27);
	--xn-sun: oklch(0.93 0.18 102);
	--xn-deep: oklch(0.3 0.06 155);
	--xn-deep-fg: oklch(0.98 0.01 100);
	--xn-brand: oklch(0.62 0.17 142);
	--xn-shadow-card: 0 1px 2px oklch(0.3 0.05 150 / 6%), 0 24px 48px -24px oklch(0.3 0.05 150 / 25%);
	--xn-shadow-cta: 0 12px 24px -10px oklch(0.55 0.21 27 / 55%);
	--xn-green: oklch(0.55 0.17 145);
	--xn-shadow-green: 0 12px 24px -10px oklch(0.55 0.17 145 / 55%);
	--xn-display: "Bricolage Grotesque", "Work Sans", sans-serif;

	background: var(--xn-bg);
	color: var(--xn-fg);
	font-family: "Work Sans", system-ui, sans-serif;
	line-height: 1.5;
}
.xn *, .xn *::before, .xn *::after { box-sizing: border-box; }
.xn p, .xn h2, .xn h3, .xn ul { margin: 0; padding: 0; }
.xn ul { list-style: none; }
.xn img { display: block; max-width: 100%; height: auto; }
.xn a { text-decoration: none; }

.xn-container { max-width: 72rem; margin: 0 auto; padding-left: 1.25rem; padding-right: 1.25rem; }

.xn-ico { width: 1.1em; height: 1.1em; flex: none; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

/* Hero */
.xn-hero { display: grid; align-items: center; gap: 3rem; padding-top: 4rem; padding-bottom: 4rem; }
.xn-kicker { font-size: .875rem; font-weight: 600; text-transform: uppercase; letter-spacing: .18em; color: var(--xn-green); }
.xn-pill { display: inline-block; margin-top: 1.5rem; padding: .25rem .75rem; border-radius: 999px; background: var(--xn-sun); color: var(--xn-accent-fg); font-size: .75rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; }
.xn-title { margin-top: 1rem !important; font-family: var(--xn-display); font-size: 3rem; font-weight: 800; line-height: 1.02; letter-spacing: -.025em; color: #111; }
.xn-title span { color: var(--xn-green); }
.xn-lead { margin-top: 1.5rem !important; max-width: 32rem; font-size: 1.125rem; line-height: 1.65; color: var(--xn-muted-fg); }
.xn-lead strong { color: var(--xn-fg); }
.xn .xn-deadline { display: inline-flex; align-items: center; gap: .5rem; margin-top: 1.5rem; padding: .75rem 1.25rem; border: 1px solid oklch(0.55 0.21 27 / 30%); border-radius: 1.125rem; background: var(--xn-card); font-size: .875rem; font-weight: 700; color: var(--xn-festive); }
.xn-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; margin-top: 2rem; }
.xn-btn { display: inline-flex; align-items: center; gap: .5rem; border-radius: 1.125rem; font-weight: 700; transition: transform .15s, background-color .15s, color .15s; }
.xn-btn--festive { padding: 1rem 1.75rem; background: var(--xn-green); color: #fff !important; box-shadow: var(--xn-shadow-green); }
.xn-btn--festive:hover { transform: translateY(-2px); }
.xn-btn--outline { padding: .875rem 1.5rem; border: 2px solid var(--xn-primary); color: var(--xn-primary) !important; }
.xn-btn--outline:hover { background: var(--xn-primary); color: #fff !important; }
.xn-note { margin-top: 1rem !important; font-size: .875rem; color: var(--xn-muted-fg); }
.xn-note a { font-weight: 700; color: var(--xn-primary); }
.xn-hero-img { order: -1; display: block; overflow: hidden; border-radius: 1.75rem; box-shadow: var(--xn-shadow-card), 0 0 0 1px var(--xn-border); transition: transform .15s; }
.xn-hero-img:hover { transform: translateY(-4px); }
.xn-hero-img img { width: 100%; }

/* Nabídky */
.xn-offers { background: var(--xn-secondary); padding: 5rem 0; }
.xn-h2 { text-align: center; font-family: var(--xn-display); font-size: 2.25rem; font-weight: 800; letter-spacing: -.025em; line-height: 1.15; color: var(--xn-primary); }
.xn-sub { margin-top: .75rem !important; text-align: center; color: var(--xn-muted-fg); }
.xn-grid { display: grid; align-items: stretch; gap: 1.5rem; margin-top: 3rem; }
.xn-card { position: relative; display: flex; flex-direction: column; padding: 1.75rem; border-radius: 1.75rem; background: var(--xn-card); box-shadow: var(--xn-shadow-card), 0 0 0 1px var(--xn-border); }
.xn-card--best { box-shadow: var(--xn-shadow-card), 0 0 0 2px var(--xn-festive); }
.xn-card-flag { position: absolute; top: -.875rem; left: 50%; transform: translateX(-50%); white-space: nowrap; padding: .375rem 1rem; border-radius: 999px; background: var(--xn-festive); color: #fff; font-size: .75rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; }
.xn-card-top { display: flex; align-items: center; justify-content: space-between; gap: .5rem; }
.xn-card-eyebrow { font-size: .75rem; font-weight: 600; text-transform: uppercase; letter-spacing: .15em; color: var(--xn-muted-fg); }
.xn .xn-card-save { align-self: center; margin: -.5rem 0 1.5rem; padding: .5rem 1.25rem; border-radius: 1rem; background: var(--xn-sun); color: var(--xn-accent-fg); font-size: 1.5rem; font-weight: 800; line-height: 1.2; white-space: nowrap; }
.xn-card-title { margin-top: .5rem !important; font-family: var(--xn-display); font-size: 1.875rem; font-weight: 800; color: var(--xn-primary); }
.xn-card-img { width: 100%; aspect-ratio: 4 / 3; object-fit: contain; margin: 1.5rem 0; border-radius: 1.25rem; }
/* všechny tři fotky stejně vysoké: pevná výška boxu, šířka fotky z jejího poměru stran */
.xn-card-img { display: flex; justify-content: center; align-items: flex-end; aspect-ratio: auto; height: clamp(240px, 24vw, 300px); }
.xn-card-img .akce-pack { width: auto; height: 100%; margin: 0; }
.xn-card-img .akce-pack > img { object-fit: contain; }
.xn-card-list li { display: flex; align-items: center; gap: .5rem; font-size: .875rem; }
.xn-card-list li + li { margin-top: .5rem; }
.xn-card-list .xn-ico { color: var(--xn-brand); }
.xn-card-list .xn-card-bonus { font-weight: 700; color: var(--xn-festive); }
.xn-card-list .xn-card-bonus .xn-ico { color: inherit; }
.xn-card-foot { margin-top: auto; padding-top: 1.5rem; border-top: 1px solid var(--xn-border); }
.xn-card-list { margin-bottom: 1.5rem !important; }
.xn-card-price { font-family: var(--xn-display); font-size: 2.25rem; font-weight: 800; line-height: 1.1; }
.xn-card-btn { display: flex; align-items: center; justify-content: center; gap: .5rem; margin-top: 1.25rem; padding: 1rem; border-radius: 1.125rem; background: var(--xn-primary); color: #fff !important; font-weight: 700; transition: transform .15s; }
.xn-card-btn:hover { transform: translateY(-2px); }
.xn-card-btn--festive { background: var(--xn-green); box-shadow: var(--xn-shadow-green); }

/* Info */
.xn-info { padding-top: 5rem; padding-bottom: 5rem; }
.xn-info-grid { display: grid; gap: 1.5rem; }
.xn-box { padding: 2.25rem; border-radius: 1.75rem; }
.xn-box--deep { background: var(--xn-deep); color: var(--xn-deep-fg); }
.xn-box--sun { background: var(--xn-sun); color: var(--xn-accent-fg); }
.xn-box-kicker { font-size: .75rem; font-weight: 700; text-transform: uppercase; letter-spacing: .18em; }
.xn-box--deep .xn-box-kicker { color: var(--xn-sun); font-size: 1.5rem; letter-spacing: .08em; line-height: 1.2; }
.xn-box--deep .xn-box-title { font-size: 1.3125rem; }
.xn-box--deep .xn-box-btn { font-size: .7rem; }
.xn-box-title { margin-top: .75rem !important; font-family: var(--xn-display); font-size: 1.875rem; font-weight: 700; line-height: 1.25; }
.xn-box-btn { display: inline-flex; align-items: center; gap: .25rem; margin-top: 1.75rem; padding: .75rem 1.25rem; border-radius: 1.125rem; background: var(--xn-festive); color: #fff !important; font-weight: 700; }
.xn-box-phone { display: block; margin-top: .75rem; font-family: var(--xn-display); font-size: 3rem; font-weight: 800; line-height: 1.1; color: var(--xn-festive) !important; }
.xn-box-text { margin-top: 1.25rem !important; }
.xn-benefits { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.75rem 1rem; margin-top: 3rem !important; padding: 2.25rem 1.5rem !important; border-radius: 1.75rem; background: radial-gradient(120% 140% at 50% 0%, oklch(0.4 0.09 155), var(--xn-deep)); box-shadow: var(--xn-shadow-card); }
.xn-benefits li { display: flex; flex-direction: column; align-items: center; gap: .875rem; text-align: center; font-size: .9375rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; line-height: 1.25; color: var(--xn-deep-fg); }
.xn-benefit-ico { display: flex; align-items: center; justify-content: center; width: 4rem; height: 4rem; border: 2px solid var(--xn-sun); border-radius: 50%; background: oklch(1 0 0 / 6%); }
.xn-benefit-ico svg { width: 1.75rem; height: 1.75rem; fill: none; stroke: var(--xn-sun); stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round; }
.xn-terms { max-width: 42rem; margin: 2.5rem auto 0 !important; text-align: center; font-size: .875rem; color: var(--xn-muted-fg); }
.xn-contact { margin-top: .75rem !important; text-align: center; font-size: .875rem; }
.xn-contact a { font-weight: 600; color: var(--xn-primary); text-decoration: underline; }

@media (min-width: 768px) {
	.xn-hero { grid-template-columns: 1.05fr 1fr; padding-top: 6rem; padding-bottom: 6rem; }
	.xn-hero-img { order: 0; }
	.xn-title { font-size: 3.75rem; }
	.xn-grid { grid-template-columns: repeat(3, 1fr); }
	.xn-info-grid { grid-template-columns: 1fr 1fr; }
	.xn-benefits { grid-template-columns: repeat(4, 1fr); padding: 2.75rem 2rem !important; }
}
