/* Zákaznícke rozhranie podľa dodanej grafiky Kukkonia Meat. Kódy sa nemenia. */
:root { --meat-red:#d20b19; --meat-cream:#faf8f2; --meat-ink:#302c29; }
body.customer-register, body.customer-card, body.portal-page { background:var(--meat-cream); color:var(--meat-ink); }
.customer-register { --accent:var(--meat-red); --ink:var(--meat-ink); --muted:#68625d; padding:0; }
.customer-register .wrap { max-width:520px; background:var(--meat-cream); }
.customer-register .hero { position:relative; margin:0; padding:20px 24px 42px; background:var(--meat-red); color:white; }
.customer-register .hero::after, .portal-uvod::after { content:""; position:absolute; inset:auto 0 -1px; height:24px; background:url('/assets/customer-wave.svg') center bottom / 100% 100% no-repeat; pointer-events:none; }
.customer-register .hero .logo { width:180px; height:106px; max-width:80%; object-fit:contain; margin:0 auto 8px; }
.customer-register[data-kukkonia="true"] .hero .logo { filter:brightness(0) invert(1); }
.customer-register .hero h1, .customer-register .hero.ma-logo h1 { color:white; font-size:21px; font-weight:700; line-height:1.3; }
.customer-register .hero .sub { color:#fff; font-size:14px; line-height:1.5; margin-top:8px; }
.customer-register .brand-chip { color:#fff; background:#ffffff18; border-color:#ffffff45; padding:5px 12px; }
.customer-register .panel { padding:22px 24px 28px; border:0!important; border-radius:0!important; box-shadow:none!important; background:transparent; backdrop-filter:none; }
.customer-register .benefits { margin:0 0 24px; gap:8px; }
.customer-register .benefits div { border:0; background:none; padding:0; color:#625c55; font-size:13px; line-height:1.5; }
.customer-register .benefits div:first-child { font-size:20px; font-weight:700; color:var(--meat-ink); }
.customer-register .form-grid { gap:18px; }
.customer-register label { font-size:12px; color:#625c55; letter-spacing:.025em; }
.customer-register input:not([type=checkbox]), #loginScreen input { min-height:48px; font-size:16px; background:#fff; border-color:#bdb7ad!important; }
.customer-register .chk { min-height:44px; align-items:flex-start; padding:6px 0; font-size:14px; text-transform:none; letter-spacing:0; font-weight:400; line-height:1.5; }
.customer-register .chk input { width:22px; height:22px; flex:0 0 22px; accent-color:var(--meat-red); margin-top:0; }
.customer-register #submitBtn, #loginScreen #btnLogin { min-height:48px; background:var(--meat-red)!important; color:#fff; border-radius:999px!important; box-shadow:none!important; font-size:16px; }
.customer-register .skenBtn { box-shadow:none!important; min-height:44px; }
.customer-register footer { margin:0; padding:38px 20px 28px; color:#fff; background:var(--meat-red); border-radius:50% 50% 0 0 / 16px 16px 0 0; }
.customer-register footer a { color:#fff; display:inline-flex; align-items:center; min-height:44px; font-size:14px; text-decoration:underline; }
#loginScreen { max-width:480px; padding:0; }
#loginScreen > div { border:0; border-radius:0; padding:0 24px 32px; background:var(--meat-cream); box-shadow:none; min-height:100%; }
.portal-uvod { position:relative; margin:0 -24px 26px; padding:24px 24px 42px; background:var(--meat-red); color:white; }
.portal-uvod .portal-logo { width:180px; height:110px; object-fit:contain; margin:0 auto 8px; filter:brightness(0) invert(1); }
.portal-uvod h1 { font-size:25px; color:#fff; }
.portal-uvod p { color:#fff; font-size:14px; margin-top:8px; }
#loginScreen .login-advanced { margin-top:18px; font-size:13px; color:#68625d; }
#loginScreen .login-advanced summary { cursor:pointer; min-height:44px; display:flex; align-items:center; text-decoration:underline; }
.customer-join { margin-top:24px; text-align:center; font-size:14px; color:#68625d; }
.customer-join a { display:flex; align-items:center; justify-content:center; min-height:48px; border:1px solid var(--meat-red); border-radius:999px; color:var(--meat-red); font-weight:600; margin-top:10px; text-decoration:none; }
/* Skrytie pri karte je nezávislé od opakovaného načítania preferencie. */
#portalApp[data-active-tab="card"] #preferredStoreBox { display:none!important; }
#portalApp #paneCard .card { padding:0 0 16px; overflow:hidden; background:#fff; border:1px solid #e4ddd4!important; border-radius:20px!important; box-shadow:0 8px 24px #503b2810!important; }
#portalApp[data-kukkonia="true"] #portalHero { position:relative; padding:0; margin:0 0 16px; border:0; border-radius:0; background:var(--meat-red)!important; }
#portalApp[data-kukkonia="true"] #portalHero .hero-brand-row { background:#fff; margin:0; padding:8px 16px 16px; border-radius:0 0 50% 50% / 0 0 14px 14px; }
#portalApp[data-kukkonia="true"] #portalHero .hero-logo-slot { width:100%; height:82px; min-height:0; display:flex; justify-content:center; }
#portalApp[data-kukkonia="true"] #portalHero #deptLogoImg { width:156px; max-width:100%; height:92px; max-height:none; object-fit:contain; }
.meat-card-title { display:none; }
#portalApp[data-kukkonia="true"] .meat-card-title { display:block; margin:0; padding:24px 22px 28px; color:#fff; font-size:29px; font-weight:800; letter-spacing:-.025em; line-height:1.08; text-align:center; }
#portalApp #paneCard .qr-wrap, #portalApp #paneCard .barcode-wrap { background:#fff; border:0; box-shadow:none; border-radius:0; margin:0; padding:12px 18px; }
#portalApp #paneCard .barcode-wrap svg { max-width:100%; height:auto; }
#portalApp #paneCard .card-number { font-size:16px; letter-spacing:.06em; color:#26221f; }
.card-scan-caption { margin:0 16px 4px; text-align:center; font-size:12px; color:#716a63; }
body .wallet-actions-row { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:12px; padding:8px 4px; }
body .wallet-actions-row[hidden], body .wallet-badge-link[hidden] { display:none; }
body .wallet-badge-link { flex:0 1 170px; width:170px; height:64px; display:flex; align-items:center; justify-content:center; overflow:visible; border:0; border-radius:0; background:transparent; }
body .wallet-badge-link img { display:block; width:100%; height:auto; max-height:64px; object-fit:contain; border:0; border-radius:0; background:transparent; }
body .wallet-badge-link:focus-visible { outline:3px solid var(--meat-red); outline-offset:5px; }
#portalApp #walletHint { font-size:12px; line-height:1.5; color:#716a63; margin:4px 0 18px; }
#portalApp #paneCard .portal-card-extra { box-shadow:none; border-color:#e7e0d6; }
.customer-card { display:flex; flex-direction:column; justify-content:center; align-items:center; gap:0; padding:24px 16px; }
.customer-card .card { max-width:430px; width:100%; padding:0 0 16px; background:#fff; border:1px solid #e4ddd4!important; box-shadow:0 8px 24px #503b2810!important; overflow:hidden; }
.customer-card .hero { background:var(--meat-red); border:0; border-radius:0; margin:0 0 14px; padding:24px; }
.customer-card .hero .meta, .customer-card .hero .customer-no { color:white; }
.customer-card .qr-wrap, .customer-card .barcode-wrap { border:0; border-radius:0; background:#fff; padding:16px; }
.customer-card .note { color:#716a63; padding:0 16px; }
.customer-card .action { margin:8px 16px; width:calc(100% - 32px); min-height:44px; }
.customer-card .card-wallet-outside { max-width:430px; }
.customer-card [hidden] { display:none!important; }
.customer-card .public-brand-logo { display:block; width:160px; height:96px; object-fit:contain; margin:0 auto; }
.customer-card[data-kukkonia="true"] .public-brand-logo { filter:brightness(0) invert(1); }
@media(min-width:600px) { .customer-register { padding:32px 16px; } .customer-register .wrap { overflow:hidden; border-radius:24px; box-shadow:0 12px 48px #503b2814; } #loginScreen { margin-top:24px; border-radius:24px 24px 0 0; } }
@media(max-width:359px) { .customer-register .panel { padding:20px; } body .wallet-badge-link { flex-basis:170px; } }

/* Originálne logo má priesvitné okraje. Zachovať celý pomer, nie natiahnuť. */
.customer-register[data-kukkonia="true"] .hero .logo, .portal-uvod .portal-logo { width:200px; height:200px; margin:-42px auto -32px; object-fit:contain; }
#portalApp[data-kukkonia="true"] #portalHero #deptLogoImg { width:170px; height:170px; margin-top:0; }
.customer-card[data-kukkonia="true"] .public-brand-logo { width:180px; height:180px; margin:-40px auto -30px; }
.customer-register *, .customer-card *, .portal-page * { box-sizing:border-box; }
#loginScreen #btnLogin { border:0; }
#portalApp[data-kukkonia="true"] .meat-card-title, .customer-register[data-kukkonia="true"] footer { background-image:url('/assets/customer-food-pattern.svg'); background-size:240px 180px; }

/* Existujúca dvojica odznakov: rovnaký pomer, vždy jeden riadok. */
body .wallet-actions-row { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; padding:6px 0; }
body .wallet-badge-link { width:100%; max-width:100%; height:auto; min-height:48px; flex:none; }
body .wallet-badge-link img { width:100%; height:auto; max-height:none; object-fit:contain; }
.customer-card[data-kukkonia="true"] .hero h1 { text-align:center; }
/* Domov používa rovnakú značkovú kartu a vlnu ako záložka Karta. */
#portalApp[data-kukkonia="true"] #miniHero { padding:0 0 18px; border:1px solid #e4ddd4; border-radius:20px; overflow:hidden; background:var(--meat-red)!important; background-image:url('/assets/customer-food-pattern.svg')!important; background-size:240px 180px!important; }
#portalApp[data-kukkonia="true"] #miniHero .mini-znacka-row { height:100px; background:#fff; border-radius:0 0 50% 50% / 0 0 14px 14px; }
#portalApp[data-kukkonia="true"] #miniHero #miniLogoImg { width:170px; height:170px; object-fit:contain; max-width:100%; }
#portalApp[data-kukkonia="true"] #miniHero .home-card-title { padding:18px 16px 12px; font-size:26px; background:none; }
#portalApp[data-kukkonia="true"] #miniHero #miniCustName, #portalApp[data-kukkonia="true"] #miniHero #miniPoints { color:#fff!important; text-align:center; margin:4px 16px 0; }
#portalApp[data-kukkonia="true"] #miniHero #miniPoints { font-size:14px; font-weight:500; letter-spacing:0; }
.home-offers-heading { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-top:20px; }
.home-offers-heading h2 { font-size:16px; font-weight:700; margin:0; }
.home-offers-heading .plain-btn { padding:8px 0 8px 8px; min-height:44px; background:none; border:0; color:var(--meat-red); font-size:13px; font-weight:600; cursor:pointer; }
.home-offers-hint { color:#716a63; font-size:12px; margin:0 0 10px; }
#homeOffersGrid { display:flex; flex-wrap:nowrap; gap:12px; overflow-x:auto; overscroll-behavior-x:contain; scroll-snap-type:x proximity; scroll-padding-inline:2px; padding:2px 2px 14px; scrollbar-width:thin; scrollbar-color:#c9b6a4 transparent; }
#homeOffersGrid > article { flex:0 0 72%; min-width:0; max-width:250px; scroll-snap-align:start; box-shadow:none; border-color:#e7e0d6; }
#homeOffersGrid > article img { height:136px!important; }
#homeOffersGrid:focus-visible, #homeOffersGrid > article:focus-visible, #homeOffersAll:focus-visible { outline:2px solid var(--meat-red); outline-offset:2px; }
