.kco-app{--kco-bg:#f7f8fc;--kco-card:#fff;--kco-text:#10162a;--kco-muted:#697086;--kco-line:#e2e6f0;--kco-soft:#f1f2ff;--kco-green:#16a36a;--kco-shadow:0 18px 55px rgba(24,30,64,.09);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;color:var(--kco-text);line-height:1.45;isolation:isolate}
.kco-app *{box-sizing:border-box}.kco-app button,.kco-app input,.kco-app select,.kco-app textarea{font:inherit}.kco-app button{cursor:pointer}.kco-app button:disabled{cursor:not-allowed;opacity:.55}.kco-app img{max-width:100%;height:auto}.kco-app [hidden]{display:none!important}.kco-public-shell{position:relative;max-width:1220px;margin:0 auto;padding:28px 20px 120px}.kco-public-section,.kco-editor-section,.kco-browser-section{scroll-margin-top:125px}.kco-app h2,.kco-app h3,.kco-app h4,.kco-app p{margin-top:0}
.kco-stepper{display:flex;align-items:center;justify-content:center;gap:12px;margin:0 auto 34px;max-width:900px}.kco-stepper button{appearance:none;border:0;background:transparent;display:flex;align-items:center;gap:9px;color:#9198a9;padding:0}.kco-stepper button b{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#eef0f6;color:#6f7689}.kco-stepper button span{font-size:13px;font-weight:750;white-space:nowrap}.kco-stepper button.is-active b{background:linear-gradient(135deg,var(--kco-accent),var(--kco-accent-2));color:#fff;box-shadow:0 7px 18px color-mix(in srgb,var(--kco-accent) 28%,transparent)}.kco-stepper button.is-active span{color:var(--kco-accent)}.kco-stepper button.is-done b{background:#e8f8f1;color:var(--kco-green)}.kco-stepper i{height:1px;flex:1;max-width:110px;background:#dfe3ec}
.kco-public-hero{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:34px;align-items:center;margin-bottom:46px}.kco-public-kicker{display:block;color:var(--kco-accent);font-size:12px;font-weight:850;letter-spacing:.11em;margin-bottom:8px}.kco-public-hero h2{font-size:clamp(34px,4.7vw,64px);line-height:1.03;letter-spacing:-.045em;margin-bottom:15px;max-width:850px}.kco-public-hero p{color:var(--kco-muted);font-size:18px;max-width:760px;margin-bottom:0}.kco-custom-cta{border:0;color:#fff;text-align:left;padding:20px 20px;border-radius:22px;background:linear-gradient(135deg,var(--kco-accent),var(--kco-accent-2));display:grid;grid-template-columns:50px 1fr 34px;gap:14px;align-items:center;box-shadow:0 20px 45px color-mix(in srgb,var(--kco-accent) 24%,transparent);transition:transform .2s ease,box-shadow .2s ease}.kco-custom-cta:hover{transform:translateY(-3px);box-shadow:0 25px 50px color-mix(in srgb,var(--kco-accent) 32%,transparent)}.kco-custom-cta .kco-wand{width:48px;height:48px;border-radius:15px;background:rgba(255,255,255,.16);display:grid;place-items:center;font-size:26px}.kco-custom-cta strong,.kco-custom-cta small{display:block}.kco-custom-cta strong{font-size:17px}.kco-custom-cta small{opacity:.8;margin-top:3px}.kco-custom-cta>b{width:32px;height:32px;border-radius:50%;background:#fff;color:var(--kco-accent);display:grid;place-items:center;font-size:19px}
.kco-public-section{margin-top:38px}.kco-section-title,.kco-browser-head{display:flex;align-items:end;justify-content:space-between;gap:26px;margin-bottom:20px}.kco-section-title>div>span{font-size:11px;color:var(--kco-accent);font-weight:850;letter-spacing:.1em;text-transform:uppercase}.kco-section-title h3,.kco-browser-head h3{font-size:30px;line-height:1.1;letter-spacing:-.025em;margin:4px 0 0}.kco-section-title>p,.kco-browser-head p{margin:0;color:var(--kco-muted);font-size:14px;max-width:520px;text-align:right}
.kco-category-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:13px}.kco-category-card{min-width:0;background:#fff;border:1px solid var(--kco-line);border-radius:18px;padding:18px 16px;text-align:left;min-height:158px;display:grid;grid-template-rows:54px 1fr auto;position:relative;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease;background-clip:padding-box}.kco-category-card:hover,.kco-category-card.is-selected{border-color:color-mix(in srgb,var(--kco-accent) 65%,white);box-shadow:0 14px 35px rgba(29,35,71,.08);transform:translateY(-2px)}.kco-category-card.is-selected{background:linear-gradient(180deg,#fff,#f8f7ff)}.kco-cat-icon{width:48px;height:48px;border-radius:14px;background:var(--kco-soft);color:var(--kco-accent);display:grid;place-items:center}.kco-cat-icon svg{width:26px;height:26px}.kco-category-card strong,.kco-category-card small{display:block}.kco-category-card strong{font-size:16px;line-height:1.2;margin-top:9px}.kco-category-card small{font-size:12px;color:var(--kco-muted);margin-top:5px;line-height:1.25}.kco-category-card>b{justify-self:end;color:#a5acba;font-size:20px}
.kco-browser-section{background:linear-gradient(180deg,#fbfbfe,#f6f7fb);border:1px solid #e8ebf3;border-radius:28px;padding:28px;margin-top:42px}.kco-browser-head{align-items:center}.kco-browser-head p{text-align:left}.kco-public-search{height:44px;min-width:250px;border:1px solid var(--kco-line);background:#fff;border-radius:13px;display:flex;align-items:center;gap:8px;padding:0 12px}.kco-public-search span{font-size:20px;color:#9aa1b0}.kco-public-search input{border:0!important;outline:0!important;box-shadow:none!important;background:transparent!important;width:100%;height:auto!important;padding:0!important;color:var(--kco-text)}.kco-public-search.compact{min-width:220px;height:40px}
.kco-package-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.kco-package-card{position:relative;display:grid;grid-template-rows:250px auto auto auto;background:#fff;border:1px solid var(--kco-line);border-radius:22px;overflow:hidden;box-shadow:0 10px 28px rgba(31,36,72,.05);transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease}.kco-package-card:hover{transform:translateY(-4px);box-shadow:var(--kco-shadow)}.kco-package-card.is-featured{border:2px solid color-mix(in srgb,var(--kco-accent) 68%,white)}.kco-package-card.is-picked{border-color:var(--kco-green);box-shadow:0 0 0 3px rgba(22,163,106,.08),var(--kco-shadow)}.kco-package-badge{position:absolute;z-index:3;top:14px;left:14px;border-radius:999px;padding:6px 10px;background:linear-gradient(135deg,var(--kco-accent),var(--kco-accent-2));color:#fff;font-size:10px;font-weight:900;letter-spacing:.05em;text-transform:uppercase}.kco-package-visual{display:grid;place-items:center;background:radial-gradient(circle at 50% 65%,#fff 0,#f4f5fa 72%);padding:20px;min-height:250px;overflow:hidden}.kco-package-visual>img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 14px 15px rgba(0,0,0,.07))}.kco-public-collage{height:100%;width:100%;display:flex;align-items:flex-end;justify-content:center;gap:0;position:relative;padding:18px 6px}.kco-public-collage img{width:30%;max-height:195px;object-fit:contain;margin:0 -4%;filter:drop-shadow(0 12px 10px rgba(0,0,0,.11));transform-origin:bottom center}.kco-public-collage img:nth-child(2n){transform:translateY(-8px) scale(1.03)}.kco-package-copy{padding:18px 19px 8px}.kco-package-copy h4{font-size:21px;letter-spacing:-.02em;margin-bottom:12px}.kco-package-copy ul{list-style:none!important;padding:0!important;margin:0 0 11px!important}.kco-package-copy li{font-size:13px;margin:5px 0;color:#3f4658;display:flex;gap:7px}.kco-package-copy li span{color:var(--kco-accent);font-weight:900}.kco-clamped-copy{color:var(--kco-muted);font-size:13px;line-height:1.5;margin:9px 0 0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.kco-package-price{padding:8px 19px 15px}.kco-package-price small,.kco-package-price span,.kco-package-price strong{display:block}.kco-package-price small{font-size:11px;color:var(--kco-muted)}.kco-package-price strong{color:var(--kco-accent);font-size:25px;letter-spacing:-.02em;margin:1px 0 4px}.kco-package-price span{font-size:11px;color:#747b8d}.kco-card-actions{padding:0 18px 18px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}.kco-card-actions button,.kco-card-actions a{appearance:none;text-decoration:none!important;border-radius:11px;padding:10px 14px;font-size:12px;font-weight:800;line-height:1.2}.kco-card-primary{border:0;background:linear-gradient(135deg,var(--kco-accent),var(--kco-accent-2));color:#fff;flex:1}.kco-card-secondary{border:1px solid color-mix(in srgb,var(--kco-accent) 55%,white);background:#fff;color:var(--kco-accent);flex:1}.kco-video{border:1px solid #dde1eb;color:#20283b;background:#fff}.kco-details-link{border:0!important;background:transparent!important;color:#747b8d!important;padding-left:2px!important;padding-right:2px!important}.kco-rich-details{grid-column:1/-1;border-top:1px solid var(--kco-line);padding:18px 20px;background:#fbfbfd;color:#3e4659;font-size:14px}.kco-rich-details p:last-child{margin-bottom:0}.kco-rich-details ul,.kco-rich-details ol{padding-left:22px}
.kco-item-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.kco-item-card{background:#fff;border:1px solid var(--kco-line);border-radius:22px;overflow:hidden;display:grid;grid-template-rows:260px auto auto auto;box-shadow:0 10px 28px rgba(31,36,72,.05);transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}.kco-item-card:hover{transform:translateY(-4px);box-shadow:var(--kco-shadow)}.kco-item-card.is-picked{border-color:color-mix(in srgb,var(--kco-green) 65%,white)}.kco-item-visual{background:radial-gradient(circle at center,#fff 10%,#f2f4f9 100%);display:grid;place-items:center;padding:20px;overflow:hidden}.kco-item-visual img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 16px 14px rgba(0,0,0,.1));transform:scale(1.08)}.kco-item-visual>span{font-size:60px}.kco-item-copy{padding:18px 19px 7px}.kco-item-copy>small{color:var(--kco-accent);font-weight:800;font-size:10px;text-transform:uppercase;letter-spacing:.06em}.kco-item-copy h4{font-size:21px;margin:5px 0 4px}.kco-item-subtitle{font-size:13px;color:#555d71;margin-bottom:4px}.kco-item-price{padding:8px 19px 15px}.kco-item-price small,.kco-item-price strong,.kco-item-price span{display:block}.kco-item-price small{font-size:11px;color:var(--kco-muted)}.kco-item-price strong{font-size:24px;color:var(--kco-accent)}.kco-item-price span{font-size:11px;color:#747b8d}
.kco-selection-dock{position:fixed;z-index:99990;left:50%;bottom:18px;transform:translateX(-50%);width:min(760px,calc(100vw - 32px));background:#12182b;color:#fff;border-radius:18px;padding:12px 13px 12px 18px;display:flex;align-items:center;justify-content:space-between;gap:18px;box-shadow:0 22px 60px rgba(7,10,28,.34);transition:transform .25s ease}.kco-selection-dock.is-pulsing{animation:kcoDockPulse .55s ease}.kco-selection-dock>div:first-child{display:grid;grid-template-columns:auto auto;column-gap:10px}.kco-selection-dock span{grid-column:1/-1;color:#aeb5c8;font-size:10px}.kco-selection-dock strong{font-size:14px}.kco-selection-dock small{font-size:13px;color:#fff}.kco-dock-actions{display:flex;gap:8px}.kco-dock-actions button{border-radius:11px;padding:10px 15px;font-size:12px;font-weight:850}.kco-dock-edit{border:1px solid rgba(255,255,255,.25);background:transparent;color:#fff}.kco-dock-quote{border:0;background:linear-gradient(135deg,var(--kco-accent),var(--kco-accent-2));color:#fff}@keyframes kcoDockPulse{50%{transform:translateX(-50%) scale(1.035)}}
.kco-editor-section{margin-top:50px}.kco-match-banner{border:1px solid #a7e4c8;background:#ecfbf4;border-radius:18px;padding:15px 17px;display:flex;gap:12px;align-items:center;color:#176845;margin:0 0 16px}.kco-match-banner>span{width:34px;height:34px;border-radius:50%;background:var(--kco-green);color:#fff;display:grid;place-items:center;font-weight:900}.kco-match-banner strong,.kco-match-banner small{display:block}.kco-match-banner small{margin-top:3px;color:#3e785e}.kco-staff-panel{display:grid;grid-template-columns:1fr 1fr;gap:14px;background:#fff;border:1px solid var(--kco-line);border-radius:20px;padding:16px;margin-bottom:16px}.kco-staff-required{display:flex;align-items:center;gap:12px}.kco-staff-required>span{width:34px;height:34px;background:#eaf8f2;color:var(--kco-green);border-radius:50%;display:grid;place-items:center}.kco-staff-required strong,.kco-staff-required small{display:block}.kco-staff-required small{color:var(--kco-muted);font-size:12px}.kco-staff-required>b{margin-left:auto;border-radius:999px;background:#eaf8f2;color:var(--kco-green);font-size:10px;padding:6px 9px}.kco-staff-options{display:flex;justify-content:flex-end;gap:9px}.kco-staff-options label{position:relative;border:1px solid var(--kco-line);border-radius:14px;padding:10px 12px;display:flex;gap:9px;align-items:center;min-width:145px}.kco-staff-options input{position:absolute;opacity:0}.kco-staff-options label>span{width:19px;height:19px;border:2px solid #ccd1dc;border-radius:6px}.kco-staff-options input:checked+span{background:var(--kco-accent);border-color:var(--kco-accent);box-shadow:inset 0 0 0 4px #fff}.kco-staff-options strong,.kco-staff-options small{display:block}.kco-staff-options strong{font-size:12px}.kco-staff-options small{font-size:10px;color:var(--kco-muted)}
.kco-editor-layout{display:grid;grid-template-columns:minmax(0,1fr) 350px;gap:18px;align-items:start}.kco-stage-card,.kco-summary,.kco-editor-catalog{background:#fff;border:1px solid var(--kco-line);border-radius:22px;overflow:hidden}.kco-stage-head{height:73px;padding:0 18px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--kco-line)}.kco-stage-head strong,.kco-stage-head small{display:block}.kco-stage-head small{font-size:12px;color:var(--kco-muted);margin-top:2px}.kco-live-pill{border-radius:999px;background:#eaf8f2;color:var(--kco-green);font-size:10px;font-weight:850;padding:6px 10px}.kco-stage{height:590px;position:relative;overflow:hidden;background-color:#fbfcff;background-image:radial-gradient(#dbe0ed 1.05px,transparent 1.05px);background-size:20px 20px}.kco-stage-empty{position:absolute;inset:0;display:grid;place-content:center;text-align:center;color:#858da0;z-index:0}.kco-stage-empty>span{font-size:35px;color:#c4c9d6}.kco-stage-empty strong,.kco-stage-empty small{display:block}.kco-stage-empty strong{color:#596176;margin-top:4px}.kco-stage-empty small{font-size:12px}.kco-stage-node{position:absolute;transform:translate(-50%,-50%);transform-origin:center;transition:left var(--kco-anim) cubic-bezier(.2,.8,.2,1),top var(--kco-anim) cubic-bezier(.2,.8,.2,1),width var(--kco-anim) cubic-bezier(.2,.8,.2,1),opacity var(--kco-anim) ease,filter var(--kco-anim) ease;display:grid;place-items:center;pointer-events:auto}.kco-stage-node img{display:block;width:100%;height:auto;max-height:330px;object-fit:contain;filter:drop-shadow(0 14px 13px rgba(18,24,43,.16));user-select:none}.kco-stage-node small{position:absolute;bottom:-7px;left:50%;transform:translate(-50%,100%);background:rgba(16,22,42,.92);color:#fff;border-radius:7px;padding:4px 7px;white-space:nowrap;font-size:9px;opacity:0;transition:opacity .15s ease}.kco-stage-node:hover small{opacity:1}.kco-stage-node.is-entering{opacity:0;filter:blur(5px);transform:translate(-50%,-50%) scale(.72) translateY(35px)}.kco-stage-node.is-removing{opacity:0;filter:blur(3px);transform:translate(-50%,-50%) scale(.7) translateX(70px)}.kco-stage-fallback{width:80px;height:80px;border-radius:18px;background:var(--kco-soft);display:grid;place-items:center;font-size:36px}.kco-brand-stack{position:absolute;z-index:1000;bottom:14px;display:flex;flex-direction:column;gap:6px;align-items:flex-start;pointer-events:none}.kco-brand-stack.bottom-left{left:14px}.kco-brand-stack.bottom-right{right:14px;align-items:flex-end}.kco-brand-logo{width:var(--kco-logo-width);min-height:40px;padding:7px;background:rgba(255,255,255,.93);border:1px solid rgba(220,224,235,.95);border-radius:10px;display:grid;place-items:center;box-shadow:0 6px 14px rgba(20,25,48,.07);transition:all var(--kco-anim) ease}.kco-brand-logo img{max-height:36px;object-fit:contain}.kco-brand-logo.is-entering,.kco-brand-logo.is-removing{opacity:0;transform:translateY(15px) scale(.85)}
.kco-editor-catalog{margin-top:18px;padding:16px}.kco-editor-catalog-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:13px}.kco-editor-catalog-head strong,.kco-editor-catalog-head small{display:block}.kco-editor-catalog-head small{font-size:11px;color:var(--kco-muted)}.kco-filter-tabs{display:flex;gap:7px;overflow:auto;padding:1px 1px 9px;scrollbar-width:thin}.kco-filter-tabs button{white-space:nowrap;border:1px solid var(--kco-line);background:#fff;color:#5a6275;border-radius:999px;padding:8px 12px;font-size:11px;font-weight:750}.kco-filter-tabs button.is-active{background:var(--kco-accent);border-color:var(--kco-accent);color:#fff}.kco-editor-item-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.kco-editor-item{display:grid;grid-template-columns:64px 1fr auto;align-items:center;gap:10px;border:1px solid var(--kco-line);border-radius:15px;padding:8px;background:#fff;min-width:0;transition:border-color .2s ease,background .2s ease}.kco-editor-item.is-selected{border-color:color-mix(in srgb,var(--kco-accent) 40%,white);background:#faf9ff}.kco-editor-thumb{width:62px;height:62px;border-radius:10px;background:#f4f5f9;display:grid;place-items:center;overflow:hidden}.kco-editor-thumb img{width:100%;height:100%;object-fit:contain;padding:4px}.kco-editor-copy{min-width:0}.kco-editor-copy strong,.kco-editor-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kco-editor-copy strong{font-size:12px}.kco-editor-copy small{font-size:10px;color:var(--kco-muted);margin-top:3px}.kco-qty-control{display:flex;align-items:center;gap:5px}.kco-qty-control button,.kco-summary-controls button{width:30px;height:30px;border-radius:50%;border:1px solid var(--kco-line);background:#fff;color:var(--kco-accent);font-weight:900;display:grid;place-items:center;padding:0}.kco-qty-control b{min-width:17px;text-align:center;font-size:12px}
.kco-summary{position:sticky;top:125px;padding:17px;box-shadow:0 14px 38px rgba(28,33,66,.07)}.kco-summary-head{display:flex;justify-content:space-between;border-bottom:1px solid var(--kco-line);padding-bottom:13px}.kco-summary-head span,.kco-summary-head strong{display:block}.kco-summary-head span{font-size:9px;color:#8d94a5;letter-spacing:.12em}.kco-summary-head strong{font-size:17px;margin-top:2px}.kco-summary-head i{width:10px;height:10px;border-radius:50%;background:var(--kco-green);margin-top:7px}.kco-summary-items{max-height:310px;overflow:auto}.kco-summary-items>p{color:var(--kco-muted);font-size:12px;padding:20px 0}.kco-summary-row{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:9px;align-items:center;padding:10px 0;border-bottom:1px solid #edf0f5}.kco-summary-thumb{width:47px;height:43px;border-radius:9px;background:#f5f6fa;display:grid;place-items:center;overflow:hidden}.kco-summary-thumb img{width:100%;height:100%;object-fit:contain;padding:3px}.kco-summary-row>span:nth-child(2){min-width:0}.kco-summary-row>span:nth-child(2) strong,.kco-summary-row>span:nth-child(2) small{display:block}.kco-summary-row>span:nth-child(2) strong{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kco-summary-row>span:nth-child(2) small{font-size:9px;color:var(--kco-muted)}.kco-summary-controls{display:flex;align-items:center;gap:4px}.kco-summary-controls button{width:26px;height:26px;font-size:13px}.kco-summary-controls>b{font-size:11px;min-width:13px;text-align:center}.kco-summary-controls .kco-summary-delete{margin-left:3px;color:#de4353;border-color:#f1cfd4;background:#fff7f8;width:27px;height:27px}.kco-price-switch{display:grid;grid-template-columns:1fr 1fr;background:#eef0f5;border-radius:10px;padding:3px;margin:13px 0}.kco-price-switch button{border:0;background:transparent;border-radius:8px;padding:8px;color:#7c8395;font-size:10px;font-weight:800}.kco-price-switch button.is-active{background:#fff;color:var(--kco-accent);box-shadow:0 2px 8px rgba(15,21,45,.08)}.kco-summary-price,.kco-summary-deposit{display:flex;align-items:end;justify-content:space-between;padding:11px 0}.kco-summary-price{border-top:1px solid var(--kco-line);margin-top:4px}.kco-summary-price span,.kco-summary-deposit span{font-size:10px;color:var(--kco-muted)}.kco-summary-price strong{font-size:23px;color:var(--kco-accent)}.kco-summary-deposit strong{font-size:13px}.kco-quote-main{width:100%;border:0;border-radius:12px;padding:14px;background:linear-gradient(135deg,var(--kco-accent),var(--kco-accent-2));color:#fff;font-weight:850;display:flex;align-items:center;justify-content:center;gap:10px}.kco-quote-main span{width:23px;height:23px;border-radius:50%;background:#fff;color:var(--kco-accent);display:grid;place-items:center}.kco-reassure{display:block;text-align:center;color:#959cad;font-size:9px;margin-top:8px}
.kco-mobile-bar{display:none}.kco-modal-open{overflow:hidden}.kco-modal{position:fixed;z-index:999999;inset:0;display:grid;place-items:center;padding:20px}.kco-modal-backdrop{position:absolute;inset:0;background:rgba(10,14,30,.7);backdrop-filter:blur(7px)}.kco-modal-card{position:relative;z-index:1;width:min(760px,calc(100vw - 30px));max-height:90vh;overflow:auto;background:#fff;border-radius:24px;padding:26px;box-shadow:0 40px 100px rgba(0,0,0,.34)}.kco-modal-close{position:absolute;right:16px;top:14px;width:37px;height:37px;border:0;border-radius:50%;background:#f0f2f7;color:#687084;font-size:24px;line-height:1}.kco-modal-head>span{font-size:10px;font-weight:900;color:var(--kco-accent);letter-spacing:.1em}.kco-modal-head h3{font-size:30px;margin:5px 0}.kco-modal-head p{color:var(--kco-muted);font-size:13px}.kco-modal-selection{border:1px solid var(--kco-line);background:#fafbfe;border-radius:16px;padding:14px;margin:17px 0}.kco-modal-selection-head{display:flex;align-items:center;justify-content:space-between;gap:15px}.kco-modal-selection-head small,.kco-modal-selection-head strong{display:block}.kco-modal-selection-head small{color:var(--kco-muted);font-size:9px}.kco-modal-selection-head strong{font-size:15px}.kco-modal-selection-head>div:last-child{text-align:right}.kco-modal-selection-head>div:last-child strong{color:var(--kco-accent);font-size:20px}.kco-modal-chips{display:flex;flex-wrap:wrap;gap:5px;margin-top:10px}.kco-modal-chips span{font-size:10px;border:1px solid #e0e4ee;background:#fff;padding:5px 8px;border-radius:999px;color:#525a6d}
.kco-quote-form{display:grid;grid-template-columns:1fr;gap:12px}.kco-quote-form label{display:grid;gap:5px}.kco-quote-form label>span{font-size:11px;font-weight:750;color:#3d465a}.kco-quote-form input,.kco-quote-form select,.kco-quote-form textarea{width:100%;border:1px solid #dce1eb!important;background:#fff!important;border-radius:11px!important;padding:11px 12px!important;color:#151c2f!important;box-shadow:none!important;min-height:44px}.kco-quote-form textarea{resize:vertical}.kco-form-two{display:grid;grid-template-columns:1fr 1fr;gap:12px}.kco-quote-submit{border:0;border-radius:12px;padding:14px;background:linear-gradient(135deg,var(--kco-accent),var(--kco-accent-2));color:#fff;font-weight:850}.kco-hp{position:absolute!important;left:-99999px!important;width:1px!important;height:1px!important;opacity:0}.kco-form-status{font-size:12px;padding:0}.kco-form-status.is-success{padding:10px;border-radius:10px;background:#eaf8f2;color:#166b48}.kco-form-status.is-error{padding:10px;border-radius:10px;background:#fff1f2;color:#a92f3f}
/* Contact Form 7 is visually normalized only inside the configurator modal. */
.kco-cf7-wrap .wpcf7-form{display:grid;gap:12px}.kco-cf7-wrap .wpcf7-form p{margin:0}.kco-cf7-wrap label{font-size:11px;font-weight:750;color:#3d465a}.kco-cf7-wrap input:not([type=submit]):not([type=checkbox]):not([type=radio]),.kco-cf7-wrap select,.kco-cf7-wrap textarea{display:block;width:100%;margin-top:5px;border:1px solid #dce1eb!important;background:#fff!important;border-radius:11px!important;padding:11px 12px!important;color:#151c2f!important;box-shadow:none!important;min-height:44px}.kco-cf7-wrap textarea{min-height:110px}.kco-cf7-wrap input[type=submit],.kco-cf7-wrap button[type=submit]{border:0!important;border-radius:12px!important;padding:14px 20px!important;background:linear-gradient(135deg,var(--kco-accent),var(--kco-accent-2))!important;color:#fff!important;font-weight:850!important;cursor:pointer}.kco-cf7-wrap .uacf7-row{display:flex;flex-wrap:wrap;gap:12px}.kco-cf7-wrap [class*=uacf7-col-]{flex:1 1 240px}.kco-cf7-wrap .wpcf7-spinner{margin:0 0 0 8px}.kco-cf7-wrap .wpcf7-response-output{border-radius:10px;padding:10px!important;margin:8px 0 0!important;font-size:12px}.kco-cf7-success{padding:11px 12px;margin-bottom:12px;border-radius:11px;background:#eaf8f2;color:#166b48;font-weight:750;font-size:12px}
.kco-public-empty{grid-column:1/-1;border:1px dashed #d5dae6;border-radius:16px;padding:30px;text-align:center;color:var(--kco-muted);background:#fff}
@media(max-width:1050px){.kco-category-grid{grid-template-columns:repeat(3,1fr)}.kco-package-grid,.kco-item-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.kco-editor-layout{grid-template-columns:minmax(0,1fr) 320px}.kco-public-hero{grid-template-columns:1fr 300px}.kco-stage{height:520px}}
@media(max-width:780px){.kco-public-shell{padding:18px 14px 100px}.kco-stepper{gap:4px;margin-bottom:25px}.kco-stepper i{max-width:30px}.kco-stepper button{display:grid;justify-items:center;gap:4px}.kco-stepper button b{width:29px;height:29px;font-size:11px}.kco-stepper button span{font-size:9px}.kco-public-hero{grid-template-columns:1fr;gap:20px;margin-bottom:28px}.kco-public-hero h2{font-size:36px;text-align:center}.kco-public-hero p{text-align:center;font-size:15px}.kco-public-kicker{text-align:center}.kco-custom-cta{grid-row:2;padding:16px;border-radius:17px}.kco-section-title,.kco-browser-head{display:block}.kco-section-title>p,.kco-browser-head p{text-align:left;margin-top:8px}.kco-section-title h3,.kco-browser-head h3{font-size:25px}.kco-category-grid{grid-template-columns:repeat(2,1fr);gap:9px}.kco-category-card{min-height:128px;padding:13px;grid-template-rows:43px 1fr auto;border-radius:15px}.kco-cat-icon{width:41px;height:41px;border-radius:11px}.kco-cat-icon svg{width:22px;height:22px}.kco-category-card strong{font-size:14px}.kco-category-card small{font-size:10px}.kco-browser-section{padding:17px 12px;border-radius:20px;margin-top:30px}.kco-browser-head{margin-bottom:15px}.kco-public-search{width:100%;min-width:0;margin-top:13px}.kco-package-grid,.kco-item-grid{grid-template-columns:1fr;gap:13px}.kco-package-card{grid-template-columns:42% 58%;grid-template-rows:auto auto auto;min-height:260px;border-radius:17px}.kco-package-badge{top:9px;left:9px;font-size:8px}.kco-package-visual{grid-row:1/4;min-height:100%;padding:10px}.kco-package-copy{padding:15px 12px 4px}.kco-package-copy h4{font-size:17px;margin-bottom:8px}.kco-package-copy li{font-size:10px;margin:3px 0}.kco-package-copy .kco-clamped-copy{display:none}.kco-package-price{padding:5px 12px 8px}.kco-package-price strong{font-size:21px}.kco-card-actions{grid-column:2;padding:0 12px 13px;gap:5px}.kco-card-actions button,.kco-card-actions a{font-size:10px;padding:8px 9px}.kco-rich-details{grid-column:1/-1}.kco-public-collage{flex-wrap:wrap;align-content:center;padding:8px}.kco-public-collage img{width:45%;max-height:90px;margin:-4%}.kco-item-card{grid-template-columns:38% 62%;grid-template-rows:auto auto auto;min-height:225px;border-radius:17px}.kco-item-visual{grid-row:1/4;padding:10px}.kco-item-copy{padding:14px 12px 3px}.kco-item-copy h4{font-size:17px}.kco-item-copy .kco-clamped-copy{display:none}.kco-item-price{padding:4px 12px 7px}.kco-item-price strong{font-size:20px}.kco-item-card .kco-card-actions{grid-column:2}.kco-selection-dock{bottom:9px;border-radius:15px;width:calc(100vw - 18px);padding:9px 9px 9px 13px}.kco-selection-dock>div:first-child{display:block}.kco-selection-dock span,.kco-selection-dock strong,.kco-selection-dock small{display:block}.kco-selection-dock strong{font-size:12px;max-width:150px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kco-dock-actions button{padding:9px 10px;font-size:10px}.kco-editor-layout{grid-template-columns:1fr}.kco-staff-panel{grid-template-columns:1fr}.kco-staff-options{justify-content:stretch;display:grid;grid-template-columns:1fr 1fr}.kco-summary{position:relative;top:auto;order:-1}.kco-stage{height:420px}.kco-stage-node img{max-height:240px}.kco-editor-item-grid{grid-template-columns:1fr}.kco-editor-catalog-head{display:block}.kco-editor-catalog-head .kco-public-search{margin-top:9px}.kco-mobile-bar{position:fixed;z-index:99989;bottom:0;left:0;right:0;background:#fff;border-top:1px solid var(--kco-line);padding:9px 12px calc(9px + env(safe-area-inset-bottom));display:flex;align-items:center;justify-content:space-between;gap:10px;box-shadow:0 -12px 30px rgba(20,25,48,.09)}.kco-mobile-bar small,.kco-mobile-bar strong{display:block}.kco-mobile-bar small{font-size:9px;color:var(--kco-muted);max-width:150px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kco-mobile-bar strong{font-size:15px;color:var(--kco-accent)}.kco-mobile-bar button{border:0;border-radius:10px;background:linear-gradient(135deg,var(--kco-accent),var(--kco-accent-2));color:#fff;font-size:11px;font-weight:800;padding:11px 13px}.kco-modal{padding:8px}.kco-modal-card{width:calc(100vw - 12px);max-height:96vh;border-radius:18px;padding:19px 14px}.kco-modal-head h3{font-size:25px}.kco-form-two{grid-template-columns:1fr}.kco-modal-selection-head>div:last-child strong{font-size:17px}}
@media(max-width:420px){.kco-public-hero h2{font-size:32px}.kco-category-card{min-height:122px}.kco-package-card{grid-template-columns:39% 61%}.kco-package-copy li:nth-child(n+5){display:none}.kco-stage{height:370px}.kco-staff-options{grid-template-columns:1fr}.kco-summary-controls button{width:24px;height:24px}.kco-summary-row{grid-template-columns:42px minmax(0,1fr) auto}.kco-summary-thumb{width:41px;height:39px}.kco-dock-edit{display:none}}
@media(prefers-reduced-motion:reduce){.kco-app *{scroll-behavior:auto!important;animation:none!important;transition:none!important}}


/* 3.0.1 — larger, composition-aware ready-package visuals */
.kco-package-visual{padding:4px!important;min-height:290px!important;position:relative}
.kco-package-cover-image{width:100%!important;height:100%!important;object-fit:contain!important;transform:scale(1.10);transform-origin:center;filter:drop-shadow(0 18px 18px rgba(0,0,0,.10))}
.kco-package-layout{position:relative;width:100%;height:100%;min-height:282px;overflow:hidden;isolation:isolate;background:radial-gradient(circle at 50% 78%,#fff 0,#f4f5fa 72%)}
.kco-package-layout.is-empty{display:grid;place-items:center;color:var(--kco-muted);font-size:44px}
.kco-package-layout-node{position:absolute;display:grid;place-items:center;transform:translate(-50%,-50%) scale(1.08);transform-origin:center;max-width:none!important;max-height:none!important;filter:drop-shadow(0 16px 15px rgba(10,16,38,.14));transition:transform .25s ease}
.kco-package-card:hover .kco-package-layout-node{transform:translate(-50%,-50%) scale(1.11)}
.kco-package-layout-node img{display:block;width:100%!important;height:auto!important;max-width:none!important;max-height:265px!important;object-fit:contain}
@media(max-width:780px){
  .kco-package-visual{padding:2px!important;min-height:100%!important}
  .kco-package-layout{min-height:100%;height:100%}
  .kco-package-layout-node{transform:translate(-50%,-50%) scale(1.12)}
  .kco-package-card:hover .kco-package-layout-node{transform:translate(-50%,-50%) scale(1.12)}
  .kco-package-layout-node img{max-height:210px!important}
}

/* 3.1.0 — package-preserving extras, service fees and full-width product details */
.kco-delivery-price-line{margin-top:4px!important;color:#687084!important;font-size:10px!important;line-height:1.35}
.kco-delivery-price-line b{color:var(--kco-accent);font-weight:850}
.kco-item-card[data-detail-card],.kco-package-card[data-detail-card]{cursor:pointer}
.kco-item-card[data-detail-card]:focus-visible,.kco-package-card[data-detail-card]:focus-visible{outline:3px solid color-mix(in srgb,var(--kco-accent) 28%,transparent);outline-offset:3px}
.kco-item-card.is-expanded,.kco-package-card.is-expanded{grid-column:1/-1!important;transform:none!important;box-shadow:0 22px 56px rgba(26,31,65,.11);border-color:color-mix(in srgb,var(--kco-accent) 38%,#dfe3ed);cursor:default}
.kco-item-card.is-expanded{grid-template-columns:minmax(300px,38%) minmax(0,62%);grid-template-rows:auto auto auto auto;min-height:410px}
.kco-item-card.is-expanded .kco-item-visual{grid-column:1;grid-row:1/5;min-height:410px;padding:28px;background:radial-gradient(circle at center,#fff 8%,#f2f4f9 100%)}
.kco-item-card.is-expanded .kco-item-visual img{transform:scale(1.02);max-height:390px}
.kco-item-card.is-expanded .kco-item-copy{grid-column:2;padding:28px 30px 8px}
.kco-item-card.is-expanded .kco-item-copy h4{font-size:30px;margin-top:7px}
.kco-item-card.is-expanded .kco-item-copy .kco-clamped-copy{display:none}
.kco-item-card.is-expanded .kco-item-price{grid-column:2;padding:8px 30px 12px}
.kco-item-card.is-expanded .kco-item-price strong{font-size:29px}
.kco-item-card.is-expanded .kco-card-actions{grid-column:2;padding:4px 30px 20px}
.kco-item-card.is-expanded .kco-rich-details{grid-column:2;grid-row:auto;border-top:1px solid #edf0f5;background:#fff;padding:20px 30px 28px;font-size:15px;line-height:1.65}
.kco-package-card.is-expanded{grid-template-columns:minmax(330px,44%) minmax(0,56%);grid-template-rows:auto auto auto auto;min-height:470px}
.kco-package-card.is-expanded .kco-package-visual{grid-column:1;grid-row:1/5;min-height:470px!important;padding:14px!important}
.kco-package-card.is-expanded .kco-package-layout{min-height:450px}
.kco-package-card.is-expanded .kco-package-copy{grid-column:2;padding:30px 32px 8px}
.kco-package-card.is-expanded .kco-package-copy h4{font-size:31px}
.kco-package-card.is-expanded .kco-package-copy li{font-size:14px;margin:7px 0}
.kco-package-card.is-expanded .kco-package-copy .kco-clamped-copy{display:none}
.kco-package-card.is-expanded .kco-package-price{grid-column:2;padding:8px 32px 13px}
.kco-package-card.is-expanded .kco-package-price strong{font-size:30px}
.kco-package-card.is-expanded .kco-card-actions{grid-column:2;padding:4px 32px 22px}
.kco-package-card.is-expanded .kco-rich-details{grid-column:2;border-top:1px solid #edf0f5;background:#fff;padding:20px 32px 30px;font-size:15px;line-height:1.65}
.kco-package-card.is-expanded .kco-package-badge{left:18px;top:18px}
.kco-summary-group-title{margin:13px -3px 2px;padding:9px 6px 7px;border-bottom:1px solid #e7eaf2}
.kco-summary-group-title small,.kco-summary-group-title strong{display:block}
.kco-summary-group-title small{font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--kco-accent);font-weight:900}
.kco-summary-group-title strong{font-size:12px;color:#282e40;margin-top:2px}
.kco-summary-row-package{background:linear-gradient(90deg,#fbfbff,#fff);padding-left:5px;padding-right:5px;border-radius:9px}
.kco-summary-package-badge{font-size:8px!important;font-weight:900!important;letter-spacing:.04em;text-transform:uppercase;color:#667085!important;background:#f0f2f7;border:1px solid #e0e4ec;padding:5px 7px;border-radius:999px;white-space:nowrap}
.kco-modal-group{margin-top:13px;padding-top:11px;border-top:1px solid #e8ebf2}
.kco-modal-group.is-extra{border-top-style:dashed}
.kco-modal-group-title{display:block;font-size:10px;color:#31384a;text-transform:uppercase;letter-spacing:.08em;margin-bottom:7px}
.kco-modal-chips-package span{background:#fff;color:#4d5568}
.kco-modal-chips-extra span{border-color:color-mix(in srgb,var(--kco-accent) 28%,#e0e4ee);background:#f8f7ff;color:var(--kco-accent);font-weight:750}
.kco-modal-delivery{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-top:13px;padding:11px 12px;border-radius:10px;background:#f3f5fa;font-size:11px;color:#525a6d}
.kco-modal-delivery strong{color:var(--kco-accent);font-size:12px;white-space:nowrap}
@media(max-width:780px){
  .kco-item-card.is-expanded,.kco-package-card.is-expanded{display:grid;grid-template-columns:1fr;grid-template-rows:auto;min-height:0}
  .kco-item-card.is-expanded .kco-item-visual,.kco-package-card.is-expanded .kco-package-visual{grid-column:1;grid-row:auto;min-height:280px!important;height:300px}
  .kco-package-card.is-expanded .kco-package-layout{min-height:290px;height:290px}
  .kco-item-card.is-expanded .kco-item-copy,.kco-item-card.is-expanded .kco-item-price,.kco-item-card.is-expanded .kco-card-actions,.kco-item-card.is-expanded .kco-rich-details,.kco-package-card.is-expanded .kco-package-copy,.kco-package-card.is-expanded .kco-package-price,.kco-package-card.is-expanded .kco-card-actions,.kco-package-card.is-expanded .kco-rich-details{grid-column:1;padding-left:18px;padding-right:18px}
  .kco-item-card.is-expanded .kco-item-copy,.kco-package-card.is-expanded .kco-package-copy{padding-top:20px}
  .kco-item-card.is-expanded .kco-item-copy h4,.kco-package-card.is-expanded .kco-package-copy h4{font-size:24px}
  .kco-item-card.is-expanded .kco-rich-details,.kco-package-card.is-expanded .kco-rich-details{font-size:14px;padding-bottom:22px}
}


/* 3.1.1 — natural canvas grouping + restored add/remove animation */
.kco-stage-node{
  transition:left var(--kco-anim) cubic-bezier(.2,.8,.2,1),top var(--kco-anim) cubic-bezier(.2,.8,.2,1),width var(--kco-anim) cubic-bezier(.2,.8,.2,1),opacity var(--kco-anim) ease,filter var(--kco-anim) ease,transform var(--kco-anim) cubic-bezier(.18,.86,.25,1)!important;
  will-change:left,top,width,opacity,transform;
  aspect-ratio:1/1;
}
.kco-stage-node img{
  width:100%!important;
  height:100%!important;
  max-height:430px!important;
  object-fit:contain!important;
  transform:scale(1.12);
  transform-origin:center;
}
.kco-stage-node.is-entering{
  animation:kco-stage-pop-in var(--kco-anim) cubic-bezier(.18,.86,.25,1) both;
}
.kco-stage-node.is-removing{
  animation:kco-stage-pop-out var(--kco-anim) ease both;
}
@keyframes kco-stage-pop-in{
  0%{opacity:0;filter:blur(7px);transform:translate(-50%,-50%) translateY(42px) scale(.56)}
  72%{opacity:1;filter:blur(0);transform:translate(-50%,-50%) translateY(-3px) scale(1.055)}
  100%{opacity:1;filter:blur(0);transform:translate(-50%,-50%) scale(1)}
}
@keyframes kco-stage-pop-out{
  0%{opacity:1;filter:blur(0);transform:translate(-50%,-50%) scale(1)}
  100%{opacity:0;filter:blur(5px);transform:translate(-50%,-50%) translateY(28px) scale(.62)}
}
@media(max-width:780px){
  .kco-stage-node img{max-height:300px!important;transform:scale(1.08)}
}
@media(prefers-reduced-motion:reduce){
  .kco-stage-node.is-entering,.kco-stage-node.is-removing{animation:none!important}
}

/* 3.1.3 — multi-image equipment gallery + brand logo on equipment cards */
.kco-item-visual[data-item-gallery]{position:relative;isolation:isolate}.kco-gallery-slides{position:absolute;inset:0;display:block}.kco-item-visual .kco-gallery-slide{position:absolute;inset:0;width:100%!important;height:100%!important;object-fit:contain!important;padding:20px;opacity:0;visibility:hidden;transform:scale(1.055)!important;filter:drop-shadow(0 16px 14px rgba(0,0,0,.1));transition:opacity .32s ease,transform .42s cubic-bezier(.2,.75,.2,1),visibility .32s step-end}.kco-item-visual .kco-gallery-slide.is-active{opacity:1;visibility:visible;transform:scale(1.08)!important;transition:opacity .32s ease,transform .42s cubic-bezier(.2,.75,.2,1),visibility 0s}.kco-gallery-arrow{position:absolute;z-index:7;top:50%;transform:translateY(-50%);width:38px;height:38px;border:1px solid rgba(214,219,232,.92);border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.9);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:#2e3548;font-size:29px;font-weight:400;line-height:1;padding:0 0 3px;box-shadow:0 7px 18px rgba(20,26,52,.12);opacity:.82;transition:opacity .18s ease,transform .18s ease,background .18s ease}.kco-gallery-arrow:hover,.kco-gallery-arrow:focus-visible{opacity:1;background:#fff;transform:translateY(-50%) scale(1.06);outline:none}.kco-gallery-arrow.prev{left:12px}.kco-gallery-arrow.next{right:12px}.kco-item-card.is-expanded .kco-gallery-arrow{opacity:1;width:44px;height:44px;font-size:34px}.kco-item-card.is-expanded .kco-gallery-arrow.prev{left:18px}.kco-item-card.is-expanded .kco-gallery-arrow.next{right:18px}.kco-gallery-dots{position:absolute;z-index:7;left:50%;bottom:12px;transform:translateX(-50%);display:flex;gap:5px;padding:5px 7px;border-radius:999px;background:rgba(255,255,255,.78);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px);box-shadow:0 4px 14px rgba(20,25,48,.08)}.kco-gallery-dots button{width:7px;height:7px;min-width:7px;padding:0;border:0;border-radius:50%;background:#b8becb;transition:width .2s ease,background .2s ease}.kco-gallery-dots button.is-active{width:18px;border-radius:99px;background:var(--kco-accent)}.kco-item-brand-logo{position:absolute;z-index:8;left:12px;bottom:12px;display:flex;align-items:center;justify-content:center;max-width:84px;max-height:42px;min-width:46px;min-height:30px;padding:5px 7px;border:1px solid rgba(224,228,238,.9);border-radius:9px;background:rgba(255,255,255,.92);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px);box-shadow:0 5px 16px rgba(24,30,58,.09);pointer-events:none}.kco-item-visual .kco-item-brand-logo img,.kco-item-card.is-expanded .kco-item-visual .kco-item-brand-logo img{display:block!important;width:auto!important;height:auto!important;max-width:70px!important;max-height:30px!important;object-fit:contain!important;padding:0!important;transform:none!important;filter:none!important}.kco-item-card.is-expanded .kco-item-brand-logo{left:18px;bottom:18px;max-width:100px;max-height:48px;padding:6px 9px}.kco-item-card.is-expanded .kco-item-visual .kco-gallery-slide{padding:28px;transform:scale(1)!important;max-height:none!important}.kco-item-card.is-expanded .kco-item-visual .kco-gallery-slide.is-active{transform:scale(1.025)!important}.kco-item-visual.has-gallery{cursor:default}
@media(max-width:780px){.kco-gallery-arrow{width:34px;height:34px;font-size:27px;opacity:.92}.kco-gallery-arrow.prev{left:8px}.kco-gallery-arrow.next{right:8px}.kco-gallery-dots{bottom:8px}.kco-item-brand-logo{left:8px;bottom:8px;max-width:70px;max-height:36px}.kco-item-visual .kco-item-brand-logo img,.kco-item-card.is-expanded .kco-item-visual .kco-item-brand-logo img{max-width:58px!important;max-height:24px!important}.kco-item-card.is-expanded .kco-item-brand-logo{left:10px;bottom:10px}.kco-item-card.is-expanded .kco-item-visual .kco-gallery-slide{padding:18px}}
@media(prefers-reduced-motion:reduce){.kco-item-visual .kco-gallery-slide,.kco-gallery-arrow,.kco-gallery-dots button{transition:none!important}}


/* 3.1.4 — desktop full-width equipment browser, pair visuals, rich card copy */
.kco-public-hero h2{font-size:clamp(30px,4.7vw,var(--kco-title-size,64px))}
.kco-card-title-html{font-size:21px;line-height:1.2;font-weight:650;letter-spacing:-.02em;margin:5px 0 6px}
.kco-card-title-html p,.kco-card-title-html h1,.kco-card-title-html h2,.kco-card-title-html h3,.kco-card-title-html h4,.kco-card-title-html h5,.kco-card-title-html h6{margin:0;line-height:1.2}
.kco-card-text-html{font-size:13px;line-height:1.5;color:#555d71;margin-top:7px}
.kco-card-text-html p{margin:0 0 7px}.kco-card-text-html p:last-child{margin-bottom:0}.kco-card-text-html ul,.kco-card-text-html ol{margin:5px 0 0;padding-left:19px}
.kco-item-card.is-expanded .kco-card-title-html,.kco-package-card.is-expanded .kco-card-title-html{font-size:30px;margin-top:7px}
.kco-item-card.is-expanded .kco-card-text-html,.kco-package-card.is-expanded .kco-card-text-html{font-size:14px;line-height:1.6}

@media(min-width:1061px){
  .kco-browser-section.is-item-browser{
    width:min(1460px,calc(100vw - 32px));
    max-width:none;
    position:relative;
    left:50%;
    transform:translateX(-50%);
    padding-left:30px;
    padding-right:30px;
  }
}
@media(min-width:1280px){
  .kco-browser-section.is-item-browser .kco-item-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
}

/* A "Pár" eszköz egyetlen termékegység, de két főkép-példánnyal jelenik meg. */
.kco-item-visual .kco-pair-slide{display:flex!important;align-items:center;justify-content:center;gap:0;padding:18px 5px!important}
.kco-item-visual .kco-pair-slide img{position:relative!important;inset:auto!important;width:64%!important;height:88%!important;max-width:none!important;object-fit:contain!important;padding:0!important;filter:drop-shadow(0 16px 14px rgba(0,0,0,.11))!important;transform:none!important}
.kco-item-visual .kco-pair-slide img:first-child{margin-right:-17%;z-index:1;transform:translateX(4%) scale(.98)!important}
.kco-item-visual .kco-pair-slide img:last-child{margin-left:-17%;z-index:2;transform:translateX(-4%) scale(1.02)!important}
.kco-item-card.is-expanded .kco-item-visual .kco-pair-slide{padding:25px 9px!important}
.kco-item-card.is-expanded .kco-item-visual .kco-pair-slide img{height:92%!important}

.kco-stage-node.is-pair .kco-stage-pair{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center}
.kco-stage-node.is-pair .kco-stage-pair img{position:relative!important;width:68%!important;height:92%!important;max-height:none!important;object-fit:contain!important;filter:drop-shadow(0 14px 13px rgba(18,24,43,.16))!important;transform:none!important}
.kco-stage-node.is-pair .kco-stage-pair img:first-child{margin-right:-20%;z-index:1;transform:translateX(5%) scale(.97)!important}
.kco-stage-node.is-pair .kco-stage-pair img:last-child{margin-left:-20%;z-index:2;transform:translateX(-5%) scale(1.02)!important}

.kco-package-layout-node.is-pair .kco-package-pair-visual{width:100%;height:100%;display:flex;align-items:center;justify-content:center}
.kco-package-layout-node.is-pair .kco-package-pair-visual img{position:relative;width:68%!important;height:auto!important;max-height:265px!important;object-fit:contain!important}
.kco-package-layout-node.is-pair .kco-package-pair-visual img:first-child{margin-right:-21%;z-index:1;transform:translateX(5%) scale(.97)}
.kco-package-layout-node.is-pair .kco-package-pair-visual img:last-child{margin-left:-21%;z-index:2;transform:translateX(-5%) scale(1.02)}

@media(max-width:780px){
  .kco-public-hero h2{font-size:clamp(30px,9vw,42px)}
  .kco-card-title-html{font-size:17px}
  .kco-item-card.is-expanded .kco-card-title-html,.kco-package-card.is-expanded .kco-card-title-html{font-size:24px}
}


/* 3.1.5 — desktop catalogue cards are always full-width, using the detailed-card layout. */
@media(min-width:781px){
  /* Keep the catalogue aligned to the normal plugin/content width. 3.1.4's
     viewport breakout made category pages visually slide sideways. */
  .kco-browser-section.is-item-browser{
    width:auto;
    max-width:none;
    position:relative;
    left:auto;
    transform:none;
    padding-left:28px;
    padding-right:28px;
  }

  .kco-item-grid,.kco-package-grid{
    grid-template-columns:minmax(0,1fr)!important;
    gap:20px;
  }

  .kco-item-card,.kco-package-card{
    grid-column:1/-1!important;
    width:100%;
    max-width:none;
    transform:none!important;
  }
  .kco-item-card:hover,.kco-package-card:hover{transform:none!important}

  /* Equipment cards: same two-column composition as the old expanded view,
     even before the visitor opens the long description. */
  .kco-item-card{
    grid-template-columns:minmax(300px,38%) minmax(0,62%);
    grid-template-rows:auto auto auto auto;
    min-height:410px;
  }
  .kco-item-card .kco-item-visual{
    grid-column:1;
    grid-row:1/5;
    min-height:410px;
    height:100%;
    padding:28px;
    background:radial-gradient(circle at center,#fff 8%,#f2f4f9 100%);
  }
  .kco-item-card .kco-item-visual img{transform:scale(1.02);max-height:390px}
  .kco-item-card .kco-item-copy{grid-column:2;padding:28px 30px 8px}
  .kco-item-card .kco-item-copy h4{font-size:30px;margin-top:7px}
  .kco-item-card .kco-card-title-html{font-size:30px;margin-top:7px}
  .kco-item-card .kco-item-copy .kco-clamped-copy{display:none}
  .kco-item-card .kco-item-price{grid-column:2;padding:8px 30px 12px}
  .kco-item-card .kco-item-price strong{font-size:29px}
  .kco-item-card .kco-card-actions{grid-column:2;padding:4px 30px 20px}
  .kco-item-card .kco-rich-details{
    grid-column:2;
    grid-row:auto;
    border-top:1px solid #edf0f5;
    background:#fff;
    padding:20px 30px 28px;
    font-size:15px;
    line-height:1.65;
  }
  .kco-item-card .kco-item-brand-logo{left:18px;bottom:18px;max-width:100px;max-height:48px;padding:6px 9px}
  .kco-item-card .kco-gallery-arrow{opacity:1;width:44px;height:44px;font-size:34px}
  .kco-item-card .kco-gallery-arrow.prev{left:18px}
  .kco-item-card .kco-gallery-arrow.next{right:18px}
  .kco-item-card .kco-item-visual .kco-gallery-slide{padding:28px;transform:scale(1)!important;max-height:none!important}
  .kco-item-card .kco-item-visual .kco-gallery-slide.is-active{transform:scale(1.025)!important}
  .kco-item-card .kco-item-visual .kco-pair-slide{padding:25px 9px!important}
  .kco-item-card .kco-item-visual .kco-pair-slide img{height:92%!important}

  /* Ready-made packages use the same full-width catalogue rhythm as items. */
  .kco-package-card{
    grid-template-columns:minmax(330px,44%) minmax(0,56%);
    grid-template-rows:auto auto auto auto;
    min-height:440px;
  }
  .kco-package-card .kco-package-visual{
    grid-column:1;
    grid-row:1/5;
    min-height:440px!important;
    height:100%;
    padding:14px!important;
  }
  .kco-package-card .kco-package-layout{min-height:420px}
  .kco-package-card .kco-package-copy{grid-column:2;padding:30px 32px 8px}
  .kco-package-card .kco-package-copy h4{font-size:31px}
  .kco-package-card .kco-card-title-html{font-size:30px;margin-top:7px}
  .kco-package-card .kco-package-copy li{font-size:14px;margin:7px 0}
  .kco-package-card .kco-package-copy .kco-clamped-copy{display:none}
  .kco-package-card .kco-package-price{grid-column:2;padding:8px 32px 13px}
  .kco-package-card .kco-package-price strong{font-size:30px}
  .kco-package-card .kco-card-actions{grid-column:2;padding:4px 32px 22px}
  .kco-package-card .kco-rich-details{
    grid-column:2;
    border-top:1px solid #edf0f5;
    background:#fff;
    padding:20px 32px 30px;
    font-size:15px;
    line-height:1.65;
  }
  .kco-package-card .kco-package-badge{left:18px;top:18px}

  /* The is-expanded class now only controls whether the rich description is
     open. It must not resize a card that is already full width. */
  .kco-item-card.is-expanded,.kco-package-card.is-expanded{width:100%;max-width:none}
}

/* 3.1.6 — desktop information layout: price + description, actions, optional technical block. */
.kco-inline-label{display:block;margin:0 0 7px;color:#8a91a3;font-size:10px;font-weight:850;letter-spacing:.08em;text-transform:uppercase}
.kco-inline-rich{color:#4d5569;font-size:14px;line-height:1.58}
.kco-inline-rich p{margin:0 0 8px}.kco-inline-rich p:last-child{margin-bottom:0}.kco-inline-rich ul,.kco-inline-rich ol{margin:5px 0 8px;padding-left:21px}.kco-inline-rich li{margin:3px 0}.kco-inline-rich h1,.kco-inline-rich h2,.kco-inline-rich h3,.kco-inline-rich h4,.kco-inline-rich h5,.kco-inline-rich h6{margin:0 0 7px;line-height:1.25}
.kco-item-description-inline,.kco-item-technical-inline{display:none}

@media(min-width:781px){
  .kco-item-card{
    grid-template-columns:minmax(310px,38%) minmax(175px,190px) minmax(0,1fr)!important;
    grid-template-rows:auto auto auto minmax(0,1fr)!important;
    min-height:410px;
  }
  .kco-item-card .kco-item-visual{grid-column:1;grid-row:1/5}
  .kco-item-card .kco-item-copy{grid-column:2/4;grid-row:1;padding:28px 30px 8px}
  .kco-item-card .kco-item-price{grid-column:2;grid-row:2;padding:12px 20px 18px 30px;align-self:start}
  .kco-item-card .kco-item-price strong{font-size:29px}
  .kco-item-card .kco-item-description-inline{display:block;grid-column:3;grid-row:2;padding:9px 30px 18px 24px;align-self:start;border-left:1px solid #edf0f5;min-height:86px}
  .kco-item-card .kco-card-actions{grid-column:2/4;grid-row:3;padding:4px 30px 20px}
  .kco-item-card .kco-card-actions .kco-card-primary{min-height:42px}
  .kco-item-card .kco-mobile-details-button{display:none!important}
  .kco-item-card .kco-item-technical-inline{display:block;grid-column:2/4;grid-row:4;border-top:1px solid #edf0f5;background:#fbfbfd;padding:18px 30px 24px;align-self:stretch}
  .kco-item-card .kco-mobile-rich-details{display:none!important}
  .kco-item-card:not(:has(.kco-item-description-inline)) .kco-item-price{grid-column:2/4;padding-right:30px}
}

@media(max-width:780px){
  .kco-item-description-inline,.kco-item-technical-inline{display:none!important}
  .kco-mobile-detail-block + .kco-mobile-detail-block{margin-top:18px;padding-top:18px;border-top:1px solid #e6e9f0}
  .kco-mobile-detail-block>strong{display:block;margin-bottom:8px;color:#20283b;font-size:13px}
}

/* 3.1.7 — category-first intro, compact canvas, reliable floating actions and SEO-friendly category links. */
.kco-app{isolation:auto}
.kco-category-section{margin-top:0}
.kco-category-card{text-decoration:none!important;color:var(--kco-text)!important}
.kco-category-card:visited{color:var(--kco-text)!important}
.kco-category-title-row{align-items:center}
.kco-compact-custom{display:flex;align-items:center;justify-content:flex-end;gap:14px;max-width:570px;margin-left:auto}
.kco-compact-custom-copy{min-width:0;text-align:right}
.kco-compact-custom-copy>strong{display:block;font-size:var(--kco-compact-title-size,24px);line-height:1.15;letter-spacing:-.025em;font-weight:760;color:var(--kco-text)}
.kco-compact-custom-copy>small{display:block;margin-top:4px;color:var(--kco-muted);font-size:12px;line-height:1.35;white-space:normal}
.kco-custom-cta.kco-custom-cta-compact{flex:0 0 auto;display:flex;grid-template-columns:none;gap:8px;align-items:center;width:auto;min-width:0;padding:9px 11px;border:1px solid color-mix(in srgb,var(--kco-accent) 32%,#dfe3ec);border-radius:12px;background:#fff;color:var(--kco-accent);box-shadow:0 7px 20px rgba(28,34,67,.06);text-align:left}
.kco-custom-cta.kco-custom-cta-compact:hover{transform:translateY(-1px);box-shadow:0 10px 24px rgba(28,34,67,.09);background:#fbfaff}
.kco-custom-cta.kco-custom-cta-compact .kco-wand{width:30px;height:30px;border-radius:9px;background:var(--kco-soft);font-size:16px;color:var(--kco-accent)}
.kco-custom-cta.kco-custom-cta-compact span>strong{font-size:12px;white-space:nowrap;color:var(--kco-accent)}
.kco-custom-cta.kco-custom-cta-compact>b{width:25px;height:25px;font-size:15px;background:var(--kco-soft);color:var(--kco-accent)}
.kco-selection-dock{z-index:2147483000!important;pointer-events:auto!important;touch-action:manipulation}
.kco-selection-dock *{pointer-events:auto!important}

@media(min-width:781px){
  .kco-stage{height:220px!important}
  .kco-stage-node img{max-height:180px!important}
  .kco-stage-node.is-pair .kco-stage-pair img{max-height:180px!important;height:94%!important}
  .kco-stage-head{height:58px}
  .kco-stage-card{min-height:278px}
}

@media(max-width:780px){
  .kco-category-title-row{display:block}
  .kco-compact-custom{margin:12px 0 0;max-width:none;justify-content:space-between;align-items:center;padding:10px 11px;border:1px solid var(--kco-line);border-radius:14px;background:#fff}
  .kco-compact-custom-copy{text-align:left;padding-right:8px}
  .kco-compact-custom-copy>strong{font-size:18px!important}
  .kco-compact-custom-copy>small{font-size:10px}
  .kco-custom-cta.kco-custom-cta-compact{padding:8px 9px}
  .kco-custom-cta.kco-custom-cta-compact .kco-wand{display:none}
}
.kco-selection-dock[hidden]{display:none!important}
.kco-selection-dock,.kco-selection-dock *{box-sizing:border-box}
.kco-selection-dock button{font:inherit;cursor:pointer}
@media(min-width:781px) and (max-width:1050px){
  .kco-compact-custom{max-width:50%}
  .kco-compact-custom-copy>small{display:none}
}


/* 3.1.8 — the category selector is the literal first visible block. */
.kco-public-shell{padding-top:0!important}
.kco-category-section{margin-top:0!important}
.kco-category-grid{margin-top:0!important}


/* 3.1.9 — compact desktop equipment cards.
   The description uses the full content width; price/deposit sit underneath,
   and whitespace is deliberately tighter so catalogue browsing stays dense. */
@media(min-width:781px){
  .kco-item-card,
  .kco-item-card.is-expanded{
    grid-template-columns:minmax(260px,34%) minmax(0,66%)!important;
    grid-template-rows:auto auto auto auto auto!important;
    min-height:0!important;
    height:auto!important;
  }
  .kco-item-card .kco-item-visual,
  .kco-item-card.is-expanded .kco-item-visual{
    grid-column:1!important;
    grid-row:1/6!important;
    min-height:275px!important;
    height:100%!important;
    padding:16px!important;
  }
  .kco-item-card .kco-item-visual img,
  .kco-item-card.is-expanded .kco-item-visual img{
    max-height:245px!important;
    transform:scale(1)!important;
  }
  .kco-item-card .kco-item-visual .kco-gallery-slide,
  .kco-item-card.is-expanded .kco-item-visual .kco-gallery-slide{
    padding:16px!important;
    transform:scale(.98)!important;
  }
  .kco-item-card .kco-item-visual .kco-gallery-slide.is-active,
  .kco-item-card.is-expanded .kco-item-visual .kco-gallery-slide.is-active{
    transform:scale(1)!important;
  }
  .kco-item-card .kco-item-visual .kco-pair-slide,
  .kco-item-card.is-expanded .kco-item-visual .kco-pair-slide{padding:14px 7px!important}
  .kco-item-card .kco-item-visual .kco-pair-slide img,
  .kco-item-card.is-expanded .kco-item-visual .kco-pair-slide img{height:88%!important}

  .kco-item-card .kco-item-copy,
  .kco-item-card.is-expanded .kco-item-copy{
    grid-column:2!important;
    grid-row:1!important;
    padding:16px 22px 4px!important;
  }
  .kco-item-card .kco-item-copy h4,
  .kco-item-card.is-expanded .kco-item-copy h4,
  .kco-item-card .kco-card-title-html,
  .kco-item-card.is-expanded .kco-card-title-html{
    font-size:24px!important;
    line-height:1.15!important;
    margin:4px 0 2px!important;
  }
  .kco-item-card .kco-item-subtitle{margin:2px 0 0!important;font-size:12px;line-height:1.3}

  .kco-item-card .kco-item-description-inline,
  .kco-item-card.is-expanded .kco-item-description-inline{
    display:block!important;
    grid-column:2!important;
    grid-row:2!important;
    padding:3px 22px 7px!important;
    border-left:0!important;
    min-height:0!important;
  }
  .kco-inline-label{margin-bottom:3px!important;font-size:9px}
  .kco-item-description-inline .kco-inline-rich{font-size:13px;line-height:1.38}
  .kco-item-description-inline .kco-inline-rich p{margin:0 0 4px}
  .kco-item-description-inline .kco-inline-rich ul,
  .kco-item-description-inline .kco-inline-rich ol{margin:2px 0 4px;padding-left:18px}
  .kco-item-description-inline .kco-inline-rich li{margin:1px 0}

  .kco-item-card .kco-item-price,
  .kco-item-card.is-expanded .kco-item-price{
    grid-column:2!important;
    grid-row:3!important;
    display:flex!important;
    align-items:flex-end!important;
    gap:34px!important;
    padding:4px 22px 8px!important;
  }
  .kco-item-price-main small,.kco-item-price-main strong{display:block}
  .kco-item-card .kco-item-price strong,
  .kco-item-card.is-expanded .kco-item-price strong{font-size:25px!important;line-height:1.05}
  .kco-item-deposit{display:block!important;padding-bottom:1px;color:#60687a!important}
  .kco-item-deposit small{display:block!important;font-size:9px!important;color:#8a91a3!important;line-height:1.1}
  .kco-item-deposit b{display:block;font-size:14px;line-height:1.2;color:#343b4d;font-weight:750}

  .kco-item-card .kco-card-actions,
  .kco-item-card.is-expanded .kco-card-actions{
    grid-column:2!important;
    grid-row:4!important;
    padding:0 22px 10px!important;
  }
  .kco-item-card .kco-card-actions .kco-card-primary{min-height:36px!important;padding:8px 14px!important}

  .kco-item-card .kco-item-technical-inline,
  .kco-item-card.is-expanded .kco-item-technical-inline{
    display:block!important;
    grid-column:2!important;
    grid-row:5!important;
    border-top:1px solid #edf0f5!important;
    background:#fbfbfd!important;
    padding:8px 22px 10px!important;
  }
  .kco-item-technical-inline .kco-inline-rich{
    font-size:12px!important;
    line-height:1.32!important;
    column-width:250px;
    column-gap:24px;
  }
  .kco-item-technical-inline .kco-inline-rich p{margin:0 0 3px}
  .kco-item-technical-inline .kco-inline-rich ul,
  .kco-item-technical-inline .kco-inline-rich ol{margin:2px 0 3px;padding-left:17px}
  .kco-item-technical-inline .kco-inline-rich li{margin:1px 0;break-inside:avoid}

  .kco-item-card .kco-item-brand-logo,
  .kco-item-card.is-expanded .kco-item-brand-logo{left:12px!important;bottom:12px!important;max-width:82px!important;max-height:40px!important;padding:5px 7px!important}
  .kco-item-card .kco-gallery-arrow,
  .kco-item-card.is-expanded .kco-gallery-arrow{width:36px!important;height:36px!important;font-size:28px!important}
  .kco-item-card .kco-gallery-arrow.prev,.kco-item-card.is-expanded .kco-gallery-arrow.prev{left:10px!important}
  .kco-item-card .kco-gallery-arrow.next,.kco-item-card.is-expanded .kco-gallery-arrow.next{right:10px!important}

  /* No description: keep the price directly after the heading without reserving an empty row. */
  .kco-item-card:not(:has(.kco-item-description-inline)) .kco-item-price{grid-row:2!important}
  .kco-item-card:not(:has(.kco-item-description-inline)) .kco-card-actions{grid-row:3!important}
  .kco-item-card:not(:has(.kco-item-description-inline)) .kco-item-technical-inline{grid-row:4!important}
}

/* 3.1.11 — fixed desktop purchase row.
   3.1.10 accidentally stored this block with literal \\n text, so the browser ignored it.
   Keep description full width, then price/deposit and Add button on the SAME row. */
@media (min-width:781px){
  .kco-item-card,
  .kco-item-card.is-expanded{
    display:grid!important;
    grid-template-columns:minmax(260px,34%) minmax(170px,24%) minmax(260px,42%)!important;
    grid-template-rows:auto auto auto auto!important;
    min-height:0!important;
    height:auto!important;
  }

  .kco-item-card .kco-item-visual,
  .kco-item-card.is-expanded .kco-item-visual{
    grid-column:1!important;
    grid-row:1/5!important;
  }

  .kco-item-card .kco-item-copy,
  .kco-item-card.is-expanded .kco-item-copy{
    grid-column:2/4!important;
    grid-row:1!important;
    padding:14px 22px 1px!important;
  }

  .kco-item-card .kco-item-description-inline,
  .kco-item-card.is-expanded .kco-item-description-inline{
    display:block!important;
    grid-column:2/4!important;
    grid-row:2!important;
    padding:0 22px 3px!important;
    margin:0!important;
    border-left:0!important;
    min-height:0!important;
  }
  .kco-item-description-inline .kco-inline-label{margin:0 0 2px!important}
  .kco-item-description-inline .kco-inline-rich{margin:0!important}
  .kco-item-description-inline .kco-inline-rich p{margin:0 0 2px!important}
  .kco-item-description-inline .kco-inline-rich ul,
  .kco-item-description-inline .kco-inline-rich ol{margin:1px 0 2px!important;padding-left:18px!important}
  .kco-item-description-inline .kco-inline-rich li{margin:0!important}

  .kco-item-card .kco-item-price,
  .kco-item-card.is-expanded .kco-item-price{
    grid-column:2!important;
    grid-row:3!important;
    display:flex!important;
    align-items:center!important;
    align-self:center!important;
    gap:16px!important;
    min-width:0!important;
    padding:1px 8px 8px 22px!important;
    margin:0!important;
  }
  .kco-item-card .kco-item-price strong,
  .kco-item-card.is-expanded .kco-item-price strong{font-size:25px!important;line-height:1.05!important;margin:0!important}

  .kco-item-card .kco-card-actions,
  .kco-item-card.is-expanded .kco-card-actions{
    grid-column:3!important;
    grid-row:3!important;
    display:flex!important;
    align-items:center!important;
    align-self:center!important;
    padding:1px 22px 8px 6px!important;
    margin:0!important;
    gap:8px!important;
  }
  .kco-item-card .kco-card-actions .kco-card-primary,
  .kco-item-card.is-expanded .kco-card-actions .kco-card-primary{
    width:100%!important;
    min-height:38px!important;
    margin:0!important;
    padding:8px 14px!important;
  }

  .kco-item-card .kco-item-technical-inline,
  .kco-item-card.is-expanded .kco-item-technical-inline{
    grid-column:2/4!important;
    grid-row:4!important;
    padding:7px 22px 9px!important;
  }

  /* No description: price + Add move directly under the title, still side by side. */
  .kco-item-card:not(:has(.kco-item-description-inline)) .kco-item-price{
    grid-column:2!important;
    grid-row:2!important;
    padding-top:2px!important;
  }
  .kco-item-card:not(:has(.kco-item-description-inline)) .kco-card-actions{
    grid-column:3!important;
    grid-row:2!important;
    padding-top:2px!important;
  }
  .kco-item-card:not(:has(.kco-item-description-inline)) .kco-item-technical-inline{
    grid-column:2/4!important;
    grid-row:3!important;
  }
}


/* 3.1.12: the desktop dock is portaled to <body>; hide it while the quote modal is open. */
html.kco-modal-open .kco-selection-dock{display:none!important}

/* 3.1.13 — ready-made package cards: automatic side-by-side product collage.
   Saved free-canvas X/Y coordinates are deliberately ignored on catalogue cards,
   so items cannot accidentally pile up on the same point. */
.kco-package-layout-auto .kco-package-layout-node{
  transform:translate(-50%,-50%) scale(1)!important;
  transition:transform .22s ease,filter .22s ease;
}
.kco-package-card:hover .kco-package-layout-auto .kco-package-layout-node{
  transform:translate(-50%,-50%) scale(1.025)!important;
}
.kco-package-layout-auto .kco-package-layout-node>img{
  width:100%!important;
  max-height:250px!important;
  object-fit:contain!important;
}
.kco-package-layout-auto .kco-package-layout-node.is-pair .kco-package-pair-visual{
  width:100%;
  height:100%;
}
@media (max-width:780px){
  .kco-package-layout-auto .kco-package-layout-node,
  .kco-package-card:hover .kco-package-layout-auto .kco-package-layout-node{
    transform:translate(-50%,-50%) scale(1)!important;
  }
  .kco-package-layout-auto .kco-package-layout-node>img{max-height:195px!important}
}

/* 3.1.14 — unified professional package/editor visual layout.
   Products share a bottom baseline, use restrained overlap, and the live editor
   no longer falls back to saved package X/Y coordinates after "Szerkesztem". */
.kco-package-layout-auto .kco-package-layout-node{
  top:auto!important;
  transform:translateX(-50%)!important;
  transform-origin:bottom center!important;
  display:block!important;
  height:auto!important;
  aspect-ratio:auto!important;
}
.kco-package-card:hover .kco-package-layout-auto .kco-package-layout-node{
  transform:translateX(-50%) scale(1.018)!important;
}
.kco-package-layout-auto .kco-package-layout-node>img{
  display:block!important;
  width:100%!important;
  height:auto!important;
  max-height:330px!important;
  object-fit:contain!important;
  object-position:var(--kco-backdrop-object-x,50%) bottom!important;
}
.kco-package-layout-auto .kco-package-layout-node.is-pair .kco-package-pair-visual{
  display:flex!important;
  align-items:flex-end!important;
  justify-content:center!important;
  height:auto!important;
}
.kco-package-layout-auto .kco-package-layout-node.is-pair .kco-package-pair-visual img{
  height:auto!important;
  object-position:center bottom!important;
}

.kco-stage-node{
  top:auto!important;
  transform:translateX(-50%)!important;
  transform-origin:bottom center!important;
  aspect-ratio:auto!important;
  display:block!important;
  height:auto!important;
  transition:left var(--kco-anim) cubic-bezier(.2,.8,.2,1),bottom var(--kco-anim) cubic-bezier(.2,.8,.2,1),width var(--kco-anim) cubic-bezier(.2,.8,.2,1),opacity var(--kco-anim) ease,filter var(--kco-anim) ease,transform var(--kco-anim) cubic-bezier(.18,.86,.25,1)!important;
  will-change:left,bottom,width,opacity,transform!important;
}
.kco-stage-node>img{
  display:block!important;
  width:100%!important;
  height:auto!important;
  max-height:180px!important;
  object-fit:contain!important;
  object-position:var(--kco-backdrop-object-x,50%) bottom!important;
  transform:none!important;
}
.kco-stage-node.is-pair .kco-stage-pair{
  display:flex!important;
  align-items:flex-end!important;
  justify-content:center!important;
  width:100%!important;
  height:auto!important;
}
.kco-stage-node.is-pair .kco-stage-pair img{
  height:auto!important;
  max-height:180px!important;
  object-position:center bottom!important;
}
.kco-stage-node.is-entering{animation:kco-stage-bottom-pop-in var(--kco-anim) cubic-bezier(.18,.86,.25,1) both!important}
.kco-stage-node.is-removing{animation:kco-stage-bottom-pop-out var(--kco-anim) ease both!important}
@keyframes kco-stage-bottom-pop-in{
  0%{opacity:0;filter:blur(6px);transform:translateX(-50%) translateY(24px) scale(.72)}
  75%{opacity:1;filter:blur(0);transform:translateX(-50%) translateY(-2px) scale(1.025)}
  100%{opacity:1;filter:blur(0);transform:translateX(-50%) scale(1)}
}
@keyframes kco-stage-bottom-pop-out{
  0%{opacity:1;filter:blur(0);transform:translateX(-50%) scale(1)}
  100%{opacity:0;filter:blur(4px);transform:translateX(-50%) translateY(18px) scale(.72)}
}

@media(max-width:780px){
  .kco-package-layout-auto .kco-package-layout-node,
  .kco-package-card:hover .kco-package-layout-auto .kco-package-layout-node{
    transform:translateX(-50%)!important;
  }
  .kco-package-layout-auto .kco-package-layout-node>img{max-height:205px!important}
  .kco-stage-node>img,.kco-stage-node.is-pair .kco-stage-pair img{max-height:235px!important}
}


/* 3.1.15 — collision-safe, size-aware package montage.
   The inline packing engine guarantees a 6–94% horizontal safe area. */
.kco-package-layout-auto{
  overflow:hidden!important;
  box-sizing:border-box!important;
  padding:10px 3.5% 7px!important;
}
.kco-package-layout-auto .kco-package-layout-node{
  position:absolute!important;
  top:auto!important;
  height:auto!important;
  max-width:42%!important;
  transform:translateX(-50%)!important;
  transform-origin:bottom center!important;
  display:flex!important;
  align-items:flex-end!important;
  justify-content:center!important;
  filter:drop-shadow(0 13px 12px rgba(10,16,38,.14))!important;
}
.kco-package-card:hover .kco-package-layout-auto .kco-package-layout-node{
  transform:translateX(-50%) scale(1.012)!important;
}
.kco-package-layout-auto .kco-package-layout-node>img{
  display:block!important;
  width:100%!important;
  height:auto!important;
  max-height:350px!important;
  object-fit:contain!important;
  object-position:center bottom!important;
}
.kco-package-layout-auto .kco-package-layout-node.is-small>img{max-height:185px!important}
.kco-package-layout-auto .kco-package-layout-node.is-wide>img{max-height:245px!important}
.kco-package-layout-auto .kco-package-layout-node.is-tall>img{max-height:355px!important}
.kco-package-layout-auto .kco-package-layout-node.is-pair .kco-package-pair-visual{
  display:flex!important;
  align-items:flex-end!important;
  justify-content:center!important;
  width:100%!important;
  height:auto!important;
}
.kco-package-layout-auto .kco-package-layout-node.is-pair .kco-package-pair-visual img{
  position:relative!important;
  width:68%!important;
  height:auto!important;
  max-height:350px!important;
  object-fit:contain!important;
  object-position:center bottom!important;
}
.kco-package-layout-auto .kco-package-layout-node.is-pair .kco-package-pair-visual img:first-child{margin-right:-23%!important;z-index:1;transform:translateX(5%) scale(.98)!important}
.kco-package-layout-auto .kco-package-layout-node.is-pair .kco-package-pair-visual img:last-child{margin-left:-23%!important;z-index:2;transform:translateX(-5%) scale(1.02)!important}

/* The live editor uses the same safe collage geometry as package cards. */
.kco-stage-node{
  top:auto!important;
  height:auto!important;
  max-width:42%!important;
  transform:translateX(-50%)!important;
  transform-origin:bottom center!important;
}
.kco-stage-node>img{width:100%!important;height:auto!important;max-height:180px!important;object-position:center bottom!important}
.kco-stage-node.is-small>img{max-height:105px!important}
.kco-stage-node.is-wide>img{max-height:135px!important}
.kco-stage-node.is-tall>img{max-height:185px!important}
.kco-stage-node.is-pair .kco-stage-pair{align-items:flex-end!important;height:auto!important}
.kco-stage-node.is-pair .kco-stage-pair img{height:auto!important;max-height:180px!important;object-position:center bottom!important}

@media(max-width:780px){
  .kco-package-layout-auto{padding:7px 4% 5px!important}
  .kco-package-layout-auto .kco-package-layout-node>img,
  .kco-package-layout-auto .kco-package-layout-node.is-pair .kco-package-pair-visual img{max-height:205px!important}
  .kco-package-layout-auto .kco-package-layout-node.is-small>img{max-height:118px!important}
  .kco-package-layout-auto .kco-package-layout-node.is-wide>img{max-height:150px!important}
}

/* 3.1.16 — adaptive montage height and tighter package composition.
   A single-row package no longer sits at the very bottom of a tall empty frame;
   crowded editor scenes grow upward only when a second row is actually needed. */
@media(min-width:781px){
  .kco-package-card,
  .kco-package-card.is-expanded{
    min-height:380px!important;
  }
  .kco-package-card .kco-package-visual,
  .kco-package-card.is-expanded .kco-package-visual{
    min-height:380px!important;
  }
  .kco-package-card .kco-package-layout,
  .kco-package-card.is-expanded .kco-package-layout{
    min-height:360px!important;
  }

  /* Two-row montages get additional vertical room instead of being clipped. */
  .kco-package-card:has(.kco-package-layout-auto.is-crowded),
  .kco-package-card.is-expanded:has(.kco-package-layout-auto.is-crowded){
    min-height:500px!important;
  }
  .kco-package-card:has(.kco-package-layout-auto.is-crowded) .kco-package-visual,
  .kco-package-card.is-expanded:has(.kco-package-layout-auto.is-crowded) .kco-package-visual,
  .kco-package-layout-auto.is-crowded{
    min-height:480px!important;
  }
}

.kco-package-layout-auto.is-sparse .kco-package-layout-node>img,
.kco-package-layout-auto.is-standard .kco-package-layout-node>img{max-height:275px!important}
.kco-package-layout-auto.is-sparse .kco-package-layout-node.is-tall>img,
.kco-package-layout-auto.is-standard .kco-package-layout-node.is-tall>img{max-height:300px!important}
.kco-package-layout-auto.is-sparse .kco-package-layout-node.is-wide>img,
.kco-package-layout-auto.is-standard .kco-package-layout-node.is-wide>img{max-height:220px!important}
.kco-package-layout-auto.is-sparse .kco-package-layout-node.is-small>img,
.kco-package-layout-auto.is-standard .kco-package-layout-node.is-small>img{max-height:155px!important}

.kco-package-layout-auto.is-crowded .kco-package-layout-node>img{max-height:205px!important}
.kco-package-layout-auto.is-crowded .kco-package-layout-node.is-tall>img{max-height:225px!important}
.kco-package-layout-auto.is-crowded .kco-package-layout-node.is-wide>img{max-height:170px!important}
.kco-package-layout-auto.is-crowded .kco-package-layout-node.is-small>img{max-height:112px!important}
.kco-package-layout-auto.is-crowded .kco-package-layout-node.is-pair .kco-package-pair-visual img{max-height:215px!important}

/* Live editor: 220px for a normal one-row composition; JS raises this to
   250/390/420/450px only as the item count requires. */
@media(min-width:781px){
  .kco-stage{min-height:220px!important;max-height:450px!important}
}
.kco-package-layout-auto.is-sparse .kco-package-layout-node.is-pair .kco-package-pair-visual img,
.kco-package-layout-auto.is-standard .kco-package-layout-node.is-pair .kco-package-pair-visual img{max-height:285px!important}

/* 3.1.17 — ready-made packages inherit visible brand logos from their devices. */
.kco-package-brand-stack{
  position:absolute;z-index:80;bottom:14px;display:flex;flex-wrap:wrap;gap:6px;
  align-items:flex-end;pointer-events:none;max-width:72%;
}
.kco-package-brand-stack.bottom-left{left:14px;justify-content:flex-start}
.kco-package-brand-stack.bottom-right{right:14px;justify-content:flex-end}
.kco-package-brand-logo{
  width:var(--kco-package-logo-width,72px);min-width:44px;max-width:96px;height:42px;
  padding:5px 7px;border:1px solid rgba(220,224,235,.94);border-radius:9px;
  background:rgba(255,255,255,.94);display:grid;place-items:center;
  box-shadow:0 6px 14px rgba(20,25,48,.08);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)
}
.kco-package-brand-logo img{display:block!important;width:auto!important;height:auto!important;max-width:100%!important;max-height:29px!important;object-fit:contain!important;filter:none!important}
@media(max-width:780px){
  .kco-package-brand-stack{bottom:9px;gap:4px;max-width:80%}
  .kco-package-brand-stack.bottom-left{left:9px}.kco-package-brand-stack.bottom-right{right:9px}
  .kco-package-brand-logo{width:min(var(--kco-package-logo-width,72px),64px);height:35px;min-width:38px;padding:4px 6px}
  .kco-package-brand-logo img{max-height:24px!important}
}

/* 3.1.18 — mobile catalogue rebuild + clean, transparent brand marks.
   Mobile cards deliberately return to a classic catalogue rhythm: visual first,
   content below. This avoids the cramped 39/61 split on phone screens. */
.kco-item-brand-logo,
.kco-package-brand-logo{
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  padding:0!important;
  min-width:0!important;
  min-height:0!important;
  border-radius:0!important;
}
.kco-item-brand-logo{
  width:auto!important;
  height:auto!important;
  max-width:72px!important;
  max-height:36px!important;
  display:flex!important;
  align-items:flex-end!important;
  justify-content:flex-start!important;
}
.kco-item-visual .kco-item-brand-logo img,
.kco-item-card.is-expanded .kco-item-visual .kco-item-brand-logo img{
  width:auto!important;
  height:auto!important;
  max-width:72px!important;
  max-height:34px!important;
  object-fit:contain!important;
  object-position:left bottom!important;
  filter:drop-shadow(0 2px 3px rgba(15,20,35,.12))!important;
}
.kco-package-brand-logo{
  width:auto!important;
  height:auto!important;
  max-width:78px!important;
  max-height:36px!important;
  display:flex!important;
  align-items:flex-end!important;
  justify-content:flex-start!important;
}
.kco-package-brand-logo img{
  width:auto!important;
  height:auto!important;
  max-width:78px!important;
  max-height:34px!important;
  object-fit:contain!important;
  object-position:left bottom!important;
  filter:drop-shadow(0 2px 3px rgba(15,20,35,.12))!important;
}
.kco-package-brand-stack{gap:8px!important;align-items:flex-end!important}

@media(max-width:780px){
  .kco-public-shell{padding-left:10px!important;padding-right:10px!important}
  .kco-browser-section{padding:16px 10px!important;border-radius:19px!important}
  .kco-package-grid,.kco-item-grid{grid-template-columns:minmax(0,1fr)!important;gap:16px!important}

  /* READY-MADE PACKAGES — visual above, information below. */
  .kco-package-card,
  .kco-package-card.is-expanded{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    grid-template-rows:auto auto auto auto auto!important;
    min-height:0!important;
    width:100%!important;
    border-radius:20px!important;
    overflow:hidden!important;
  }
  .kco-package-card .kco-package-visual,
  .kco-package-card.is-expanded .kco-package-visual{
    grid-column:1!important;
    grid-row:1!important;
    width:100%!important;
    height:235px!important;
    min-height:235px!important;
    padding:8px 10px 4px!important;
    overflow:hidden!important;
    background:radial-gradient(circle at 50% 70%,#fff 0,#f4f5fa 76%)!important;
  }
  .kco-package-card .kco-package-layout,
  .kco-package-card.is-expanded .kco-package-layout{
    width:100%!important;
    height:223px!important;
    min-height:223px!important;
    overflow:hidden!important;
  }
  .kco-package-card:has(.kco-package-layout-auto.is-crowded) .kco-package-visual,
  .kco-package-card.is-expanded:has(.kco-package-layout-auto.is-crowded) .kco-package-visual{
    height:292px!important;
    min-height:292px!important;
  }
  .kco-package-card:has(.kco-package-layout-auto.is-crowded) .kco-package-layout,
  .kco-package-card.is-expanded:has(.kco-package-layout-auto.is-crowded) .kco-package-layout{
    height:280px!important;
    min-height:280px!important;
  }
  .kco-package-cover-image{
    width:100%!important;
    height:100%!important;
    max-height:220px!important;
    object-fit:contain!important;
    transform:none!important;
  }
  .kco-package-copy,
  .kco-package-card.is-expanded .kco-package-copy{
    grid-column:1!important;
    grid-row:2!important;
    padding:17px 18px 4px!important;
  }
  .kco-package-copy h4,
  .kco-package-card.is-expanded .kco-package-copy h4,
  .kco-package-card .kco-card-title-html,
  .kco-package-card.is-expanded .kco-card-title-html{
    font-size:22px!important;
    line-height:1.18!important;
    margin:0 0 10px!important;
  }
  .kco-package-copy ul{margin:0 0 7px!important}
  .kco-package-copy li{
    display:flex!important;
    font-size:13px!important;
    line-height:1.35!important;
    margin:4px 0!important;
  }
  .kco-package-copy li:nth-child(n){display:flex!important}
  .kco-package-price,
  .kco-package-card.is-expanded .kco-package-price{
    grid-column:1!important;
    grid-row:3!important;
    padding:8px 18px 11px!important;
  }
  .kco-package-price small{font-size:11px!important}
  .kco-package-price strong{font-size:27px!important;line-height:1.05!important;margin:3px 0 5px!important}
  .kco-package-price span{font-size:12px!important}
  .kco-package-card .kco-card-actions,
  .kco-package-card.is-expanded .kco-card-actions{
    grid-column:1!important;
    grid-row:4!important;
    padding:3px 18px 18px!important;
    gap:8px!important;
  }
  .kco-package-card .kco-card-actions button,
  .kco-package-card .kco-card-actions a{
    min-height:42px!important;
    font-size:12px!important;
    padding:10px 12px!important;
  }
  .kco-package-card .kco-video{flex:0 0 auto!important;text-align:center!important}
  .kco-package-card .kco-rich-details,
  .kco-package-card.is-expanded .kco-rich-details{
    grid-column:1!important;
    grid-row:5!important;
    padding:16px 18px 20px!important;
  }
  .kco-package-badge{top:12px!important;left:12px!important;font-size:9px!important;padding:6px 9px!important}

  /* Package montage receives mobile-specific limits so its percentage bottom
     positions can never push tall devices outside the top edge. */
  .kco-package-layout-auto{padding:5px 4% 3px!important}
  .kco-package-layout-auto .kco-package-layout-node{max-width:38%!important}
  .kco-package-layout-auto .kco-package-layout-node>img,
  .kco-package-layout-auto .kco-package-layout-node.is-pair .kco-package-pair-visual img{
    max-height:158px!important;
  }
  .kco-package-layout-auto .kco-package-layout-node.is-tall>img{max-height:168px!important}
  .kco-package-layout-auto .kco-package-layout-node.is-wide>img{max-height:126px!important}
  .kco-package-layout-auto .kco-package-layout-node.is-small>img{max-height:88px!important}
  .kco-package-layout-auto.is-crowded .kco-package-layout-node>img{max-height:118px!important}
  .kco-package-layout-auto.is-crowded .kco-package-layout-node.is-tall>img{max-height:128px!important}
  .kco-package-layout-auto.is-crowded .kco-package-layout-node.is-wide>img{max-height:102px!important}
  .kco-package-layout-auto.is-crowded .kco-package-layout-node.is-small>img{max-height:72px!important}
  .kco-package-layout-auto.is-crowded .kco-package-layout-node.is-pair .kco-package-pair-visual img{max-height:122px!important}

  /* INDIVIDUAL ITEMS — same readable one-column phone layout. */
  .kco-item-card,
  .kco-item-card.is-expanded{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    grid-template-rows:220px auto auto auto auto!important;
    min-height:0!important;
    width:100%!important;
    border-radius:20px!important;
    overflow:hidden!important;
  }
  .kco-item-card .kco-item-visual,
  .kco-item-card.is-expanded .kco-item-visual{
    grid-column:1!important;
    grid-row:1!important;
    width:100%!important;
    height:220px!important;
    min-height:220px!important;
    padding:12px!important;
    overflow:hidden!important;
  }
  .kco-item-card .kco-item-visual .kco-gallery-slide,
  .kco-item-card.is-expanded .kco-item-visual .kco-gallery-slide{
    padding:14px!important;
    transform:scale(1)!important;
  }
  .kco-item-card .kco-item-visual .kco-gallery-slide.is-active,
  .kco-item-card.is-expanded .kco-item-visual .kco-gallery-slide.is-active{transform:scale(1.015)!important}
  .kco-item-card .kco-item-copy,
  .kco-item-card.is-expanded .kco-item-copy{
    grid-column:1!important;
    grid-row:2!important;
    padding:16px 18px 4px!important;
  }
  .kco-item-card .kco-item-copy h4,
  .kco-item-card.is-expanded .kco-item-copy h4,
  .kco-item-card .kco-card-title-html,
  .kco-item-card.is-expanded .kco-card-title-html{
    font-size:21px!important;
    line-height:1.18!important;
    margin:4px 0 5px!important;
  }
  .kco-item-card .kco-item-price,
  .kco-item-card.is-expanded .kco-item-price{
    grid-column:1!important;
    grid-row:3!important;
    padding:7px 18px 10px!important;
  }
  .kco-item-card .kco-item-price strong{font-size:26px!important;line-height:1.05!important}
  .kco-item-card .kco-card-actions,
  .kco-item-card.is-expanded .kco-card-actions{
    grid-column:1!important;
    grid-row:4!important;
    padding:3px 18px 17px!important;
    gap:8px!important;
  }
  .kco-item-card .kco-card-actions button,
  .kco-item-card .kco-card-actions a{min-height:42px!important;font-size:12px!important;padding:10px 12px!important}
  .kco-item-card .kco-mobile-rich-details,
  .kco-item-card.is-expanded .kco-mobile-rich-details{
    grid-column:1!important;
    grid-row:5!important;
    padding:16px 18px 20px!important;
  }

  /* Brand marks float directly on the visual — no artificial white tile. */
  .kco-item-brand-logo{
    left:12px!important;
    bottom:11px!important;
    max-width:56px!important;
    max-height:30px!important;
  }
  .kco-item-visual .kco-item-brand-logo img,
  .kco-item-card.is-expanded .kco-item-visual .kco-item-brand-logo img{
    max-width:56px!important;
    max-height:28px!important;
  }
  .kco-package-brand-stack{bottom:11px!important;gap:7px!important;max-width:72%!important}
  .kco-package-brand-stack.bottom-left{left:12px!important}
  .kco-package-brand-stack.bottom-right{right:12px!important}
  .kco-package-brand-logo{max-width:58px!important;max-height:29px!important}
  .kco-package-brand-logo img{max-width:58px!important;max-height:27px!important}
}

@media(max-width:420px){
  /* Override the legacy 39/61 rule; phones always remain one-column. */
  .kco-package-card,.kco-package-card.is-expanded,
  .kco-item-card,.kco-item-card.is-expanded{grid-template-columns:minmax(0,1fr)!important}
  .kco-package-card .kco-package-visual,.kco-package-card.is-expanded .kco-package-visual{height:220px!important;min-height:220px!important}
  .kco-package-card .kco-package-layout,.kco-package-card.is-expanded .kco-package-layout{height:208px!important;min-height:208px!important}
  .kco-package-card:has(.kco-package-layout-auto.is-crowded) .kco-package-visual,
  .kco-package-card.is-expanded:has(.kco-package-layout-auto.is-crowded) .kco-package-visual{height:275px!important;min-height:275px!important}
  .kco-package-card:has(.kco-package-layout-auto.is-crowded) .kco-package-layout,
  .kco-package-card.is-expanded:has(.kco-package-layout-auto.is-crowded) .kco-package-layout{height:263px!important;min-height:263px!important}
  .kco-item-card .kco-item-visual,.kco-item-card.is-expanded .kco-item-visual{height:205px!important;min-height:205px!important}
  .kco-package-copy,.kco-package-card.is-expanded .kco-package-copy,
  .kco-item-card .kco-item-copy,.kco-item-card.is-expanded .kco-item-copy{padding-left:16px!important;padding-right:16px!important}
  .kco-package-price,.kco-package-card.is-expanded .kco-package-price,
  .kco-item-card .kco-item-price,.kco-item-card.is-expanded .kco-item-price,
  .kco-package-card .kco-card-actions,.kco-package-card.is-expanded .kco-card-actions,
  .kco-item-card .kco-card-actions,.kco-item-card.is-expanded .kco-card-actions{padding-left:16px!important;padding-right:16px!important}
}

/* 3.1.19 — mobile-first editor rebuild.
   On phones the desktop summary is redundant and consumes most of the viewport.
   The sticky bottom quote bar becomes the compact summary while the editor keeps
   only the live preview + touch-friendly equipment controls. */
@media(max-width:780px){
  .kco-app,
  .kco-public-shell,
  .kco-editor-section,
  .kco-editor-layout,
  .kco-editor-main,
  .kco-stage-card,
  .kco-editor-catalog{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    overflow-x:hidden!important;
  }
  .kco-public-shell{padding-left:8px!important;padding-right:8px!important;padding-bottom:94px!important}
  .kco-editor-section{margin-top:24px!important;padding-bottom:4px!important}

  /* The large desktop "3. lépés / Finomhangolás" header only wastes phone space. */
  .kco-editor-section>.kco-section-title{display:none!important}

  /* Package match feedback stays visible, but as a small status chip/card. */
  .kco-match-banner{
    margin:0 0 10px!important;
    padding:10px 11px!important;
    gap:9px!important;
    border-radius:14px!important;
    align-items:flex-start!important;
  }
  .kco-match-banner>span{width:27px!important;height:27px!important;min-width:27px!important;font-size:13px!important}
  .kco-match-banner strong{font-size:12px!important;line-height:1.28!important}
  .kco-match-banner small{font-size:10px!important;line-height:1.35!important;margin-top:2px!important}

  .kco-editor-layout{display:block!important}

  /* On mobile the fixed bottom bar already shows package name + total and opens
     the quote form. Hiding the full desktop summary removes a whole screen of
     duplicated rows and the horizontal scrollbar seen on narrow devices. */
  .kco-summary{display:none!important}

  /* Compact live preview. Height is also adjusted dynamically by JS for crowded
     selections, but is never allowed to become the old 420/590px monster. */
  .kco-stage-card{
    border-radius:16px!important;
    box-shadow:0 8px 24px rgba(28,33,66,.05)!important;
  }
  .kco-stage-head{
    height:49px!important;
    min-height:49px!important;
    padding:0 12px!important;
  }
  .kco-stage-head strong{font-size:13px!important;line-height:1.15!important}
  .kco-stage-head small{font-size:9px!important;margin-top:1px!important}
  .kco-live-pill{font-size:8px!important;padding:5px 8px!important}
  .kco-stage{
    height:218px!important;
    min-height:218px!important;
    max-height:318px!important;
    overflow:hidden!important;
    background-size:16px 16px!important;
  }
  .kco-stage-node{max-width:42%!important}
  .kco-stage-node>img,
  .kco-stage-node.is-pair .kco-stage-pair img{max-height:165px!important}
  .kco-stage-node.is-small>img{max-height:88px!important}
  .kco-stage-node.is-wide>img{max-height:118px!important}
  .kco-stage-node.is-tall>img{max-height:170px!important}
  .kco-stage-node small{display:none!important}

  /* Logos are marks, not cards: no tile, no border, no giant padding. */
  .kco-stage .kco-brand-stack{bottom:8px!important;gap:5px!important;max-width:72%!important}
  .kco-stage .kco-brand-stack.bottom-left{left:9px!important}
  .kco-stage .kco-brand-stack.bottom-right{right:9px!important}
  .kco-stage .kco-brand-logo{
    width:auto!important;
    min-width:0!important;
    min-height:0!important;
    max-width:52px!important;
    height:auto!important;
    padding:0!important;
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
  }
  .kco-stage .kco-brand-logo img{width:auto!important;height:auto!important;max-width:52px!important;max-height:25px!important;filter:drop-shadow(0 1px 2px rgba(15,20,35,.12))!important}

  /* Catalogue is the working area on phone. */
  .kco-editor-catalog{
    margin-top:10px!important;
    padding:11px!important;
    border-radius:16px!important;
  }
  .kco-editor-catalog-head{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    gap:8px!important;
    margin-bottom:8px!important;
  }
  .kco-editor-catalog-head>div strong{font-size:14px!important}
  .kco-editor-catalog-head>div small{font-size:9px!important;margin-top:1px!important}
  .kco-editor-catalog-head .kco-public-search{
    width:100%!important;
    min-width:0!important;
    margin:0!important;
  }
  .kco-editor-catalog-head .kco-public-search input{min-height:40px!important;height:40px!important;font-size:12px!important;padding-top:8px!important;padding-bottom:8px!important}

  .kco-filter-tabs{
    width:100%!important;
    max-width:100%!important;
    gap:6px!important;
    margin:0!important;
    padding:1px 0 8px!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    scrollbar-width:none!important;
    -webkit-overflow-scrolling:touch!important;
  }
  .kco-filter-tabs::-webkit-scrollbar{display:none!important}
  .kco-filter-tabs button{flex:0 0 auto!important;padding:7px 10px!important;font-size:10px!important;line-height:1.15!important}

  /* One compact, fully visible row per product. No controls can sit outside the
     viewport; +/- buttons remain large enough for touch. */
  .kco-editor-item-grid{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    gap:7px!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
  }
  .kco-editor-item{
    display:grid!important;
    grid-template-columns:54px minmax(0,1fr) 100px!important;
    align-items:center!important;
    gap:8px!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    min-height:66px!important;
    padding:6px 7px!important;
    border-radius:13px!important;
    overflow:hidden!important;
  }
  .kco-editor-thumb{width:52px!important;height:52px!important;border-radius:9px!important}
  .kco-editor-thumb img{padding:3px!important}
  .kco-editor-copy{min-width:0!important;overflow:hidden!important}
  .kco-editor-copy strong{
    font-size:12px!important;
    line-height:1.2!important;
    white-space:normal!important;
    display:-webkit-box!important;
    -webkit-box-orient:vertical!important;
    -webkit-line-clamp:2!important;
    overflow:hidden!important;
  }
  .kco-editor-copy small{font-size:9px!important;line-height:1.2!important;margin-top:2px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
  .kco-qty-control{display:flex!important;justify-content:flex-end!important;align-items:center!important;gap:4px!important;min-width:0!important}
  .kco-qty-control button{width:34px!important;height:34px!important;min-width:34px!important;font-size:15px!important}
  .kco-qty-control b{min-width:18px!important;font-size:12px!important}

  /* A much smaller bottom action bar. It is the persistent mobile summary. */
  .kco-mobile-bar{
    min-height:64px!important;
    padding:7px 9px calc(7px + env(safe-area-inset-bottom))!important;
    gap:8px!important;
    box-shadow:0 -8px 24px rgba(20,25,48,.12)!important;
    z-index:2147482999!important;
  }
  .kco-mobile-bar>div{min-width:0!important;flex:1 1 auto!important}
  .kco-mobile-bar small{font-size:9px!important;max-width:44vw!important;line-height:1.15!important}
  .kco-mobile-bar strong{font-size:16px!important;line-height:1.1!important;margin-top:2px!important}
  .kco-mobile-bar button{flex:0 0 auto!important;min-height:42px!important;padding:9px 13px!important;border-radius:11px!important;font-size:11px!important;white-space:nowrap!important}

  /* Quote modal uses practically the whole phone, but its submit button stays
     clear of the now-hidden mobile bar while the modal is open. */
  html.kco-modal-open .kco-mobile-bar{display:none!important}
  .kco-modal{padding:5px!important}
  .kco-modal-card{width:calc(100vw - 10px)!important;max-height:calc(100dvh - 10px)!important;padding:17px 12px 20px!important;border-radius:16px!important}
}

@media(max-width:420px){
  .kco-editor-item{grid-template-columns:48px minmax(0,1fr) 96px!important;gap:7px!important;padding:6px!important}
  .kco-editor-thumb{width:46px!important;height:46px!important}
  .kco-qty-control button{width:32px!important;height:32px!important;min-width:32px!important}
  .kco-mobile-bar small{max-width:40vw!important}
}

/* 3.1.20 — depth-aware montage: stand-mounted devices become a background layer. */
.kco-package-layout-node.is-backdrop,
.kco-package-layout-node.is-background{
  transform:translateX(-50%)!important;
  transform-origin:center bottom!important;
  aspect-ratio:auto!important;
  display:flex!important;
  align-items:flex-end!important;
  justify-content:center!important;
  pointer-events:none;
}
.kco-package-card:hover .kco-package-layout-node.is-backdrop,
.kco-package-card:hover .kco-package-layout-node.is-background{
  transform:translateX(-50%) scale(1.01)!important;
}
.kco-package-layout-node.is-backdrop>img,
.kco-package-layout-node.is-background>img{
  width:100%!important;
  height:100%!important;
  max-height:none!important;
  object-fit:contain!important;
  object-position:var(--kco-backdrop-object-x,50%) bottom!important;
  transform:none!important;
}
.kco-package-layout-node.is-medium>img{max-height:245px!important}
.kco-package-layout-node.is-small>img{max-height:135px!important}
.kco-package-layout-node.is-wide>img{max-height:190px!important}

.kco-stage-node.is-backdrop{
  transform:translateX(-50%)!important;
  transform-origin:center bottom!important;
  aspect-ratio:auto!important;
  display:flex!important;
  align-items:flex-end!important;
  justify-content:center!important;
}
.kco-stage-node.is-backdrop>img{
  width:100%!important;
  height:100%!important;
  max-height:none!important;
  object-fit:contain!important;
  object-position:center bottom!important;
  transform:none!important;
}
.kco-stage-node.is-backdrop.is-pair .kco-stage-pair{
  height:100%!important;
  align-items:flex-end!important;
}
.kco-stage-node.is-backdrop.is-pair .kco-stage-pair img{
  height:100%!important;
  max-height:none!important;
  object-position:center bottom!important;
}
.kco-stage-node.is-medium>img{max-height:255px!important}
.kco-stage-node.is-small>img{max-height:135px!important}
.kco-stage-node.is-wide>img{max-height:195px!important}

/* Category pages may contain both a ready-made package and normal devices. */
.kco-browser-section.is-item-browser .kco-package-grid:not([hidden]){margin-bottom:18px}

@media(max-width:780px){
  .kco-package-layout-node.is-backdrop>img,
  .kco-package-layout-node.is-background>img{max-height:none!important}
  .kco-package-layout-node.is-medium>img{max-height:160px!important}
  .kco-package-layout-node.is-small>img{max-height:88px!important}
  .kco-package-layout-node.is-wide>img{max-height:120px!important}
  .kco-stage-node.is-backdrop>img{max-height:none!important}
  .kco-stage-node.is-medium>img{max-height:165px!important}
  .kco-stage-node.is-small>img{max-height:88px!important}
  .kco-stage-node.is-wide>img{max-height:118px!important}
}

/* 3.1.21 — true floor-anchored background devices. A backdrop is a rear plane:
   it fills the canvas height from the bottom, while foreground packing remains
   independent. The wide invisible node prevents object-fit from shrinking a
   portrait stand because of an artificially narrow box. */
.kco-package-layout-node.is-backdrop,
.kco-package-layout-node.is-background{
  top:auto!important;
  bottom:0!important;
  height:100%!important;
  max-height:100%!important;
  transform:translateX(-50%)!important;
  transform-origin:center bottom!important;
  display:flex!important;
  align-items:flex-end!important;
  justify-content:center!important;
  overflow:visible!important;
}
.kco-package-card:hover .kco-package-layout-node.is-backdrop,
.kco-package-card:hover .kco-package-layout-node.is-background{
  transform:translateX(-50%)!important;
}
.kco-package-layout-node.is-backdrop>img,
.kco-package-layout-node.is-background>img{
  width:100%!important;
  height:100%!important;
  max-height:100%!important;
  object-fit:contain!important;
  object-position:center bottom!important;
}
.kco-stage-node.is-backdrop{
  top:auto!important;
  bottom:0!important;
  height:100%!important;
  max-height:100%!important;
  transform:translateX(-50%)!important;
  transform-origin:center bottom!important;
  display:flex!important;
  align-items:flex-end!important;
  justify-content:center!important;
}
.kco-stage-node.is-backdrop>img,
.kco-stage-node.is-backdrop.is-pair .kco-stage-pair,
.kco-stage-node.is-backdrop.is-pair .kco-stage-pair img{
  height:100%!important;
  max-height:100%!important;
  object-fit:contain!important;
  object-position:center bottom!important;
}
/* Backdrop nodes are intentionally wider than normal device caps. */
.kco-package-layout-node.is-backdrop,
.kco-package-layout-node.is-background,
.kco-stage-node.is-backdrop{max-width:84%!important}


/* 3.1.23 — sparse package cards should visually fill their image panel.
   The PHP/JS packer expands the row horizontally; these desktop caps allow the
   same proportional zoom to be visible vertically without affecting mobile. */
@media(min-width:781px){
  .kco-package-layout-auto.is-sparse .kco-package-layout-node.is-medium>img{max-height:315px!important}
  .kco-package-layout-auto.is-sparse .kco-package-layout-node.is-wide>img{max-height:265px!important}
  .kco-package-layout-auto.is-sparse .kco-package-layout-node.is-small>img{max-height:175px!important}
  .kco-package-layout-auto.is-sparse .kco-package-layout-node.is-normal>img{max-height:300px!important}
  .kco-package-layout-auto.is-sparse .kco-package-layout-node.is-pair .kco-package-pair-visual img{max-height:315px!important}
  .kco-package-layout-auto.is-standard .kco-package-layout-node.is-medium>img{max-height:295px!important}
  .kco-package-layout-auto.is-standard .kco-package-layout-node.is-wide>img{max-height:245px!important}
  .kco-package-layout-auto.is-standard .kco-package-layout-node.is-small>img{max-height:165px!important}
  .kco-package-layout-auto.is-standard .kco-package-layout-node.is-normal>img{max-height:285px!important}
}

/* 3.1.24 — live editor foreground proportions.
   Pair visuals previously kept the generic 180px pair cap even when the item
   was explicitly a medium/wide/small role. On a wide desktop editor this made
   paired speakers look unnaturally short next to a laptop. Let pair images use
   the same role-specific ceiling as their single-item counterpart. The JS scene
   normaliser then scales the whole foreground group uniformly when a backdrop
   is present, so ready-package and editor proportions stay visually consistent. */
@media(min-width:781px){
  .kco-stage-node.is-medium.is-pair .kco-stage-pair img{max-height:255px!important}
  .kco-stage-node.is-wide.is-pair .kco-stage-pair img{max-height:195px!important}
  .kco-stage-node.is-small.is-pair .kco-stage-pair img{max-height:135px!important}
  .kco-stage-node.is-normal.is-pair .kco-stage-pair img{max-height:240px!important}
}

/* 3.1.25 — live-editor physical scale when a full-height backdrop is present.
   The ready-package card is intentionally unchanged. On the much wider editor
   canvas, foreground items are sized from stage height instead of canvas width,
   so a medium speaker cannot become almost as tall as a stand-mounted TV and a
   wide laptop stays visibly lower than the speakers. */
@media(min-width:781px){
  .kco-stage.has-depth-layer .kco-stage-node:not(.is-backdrop)>img{
    width:auto!important;
    height:var(--kco-stage-role-max-h,auto)!important;
    max-height:var(--kco-stage-role-max-h,none)!important;
    max-width:100%!important;
    object-fit:contain!important;
    object-position:center bottom!important;
  }
  .kco-stage.has-depth-layer .kco-stage-node:not(.is-backdrop).is-pair .kco-stage-pair{
    height:var(--kco-stage-role-max-h,auto)!important;
    max-height:var(--kco-stage-role-max-h,none)!important;
    align-items:flex-end!important;
  }
  .kco-stage.has-depth-layer .kco-stage-node:not(.is-backdrop).is-pair .kco-stage-pair img{
    width:auto!important;
    height:100%!important;
    max-height:100%!important;
    max-width:72%!important;
    object-fit:contain!important;
    object-position:center bottom!important;
  }
}


/* 3.1.26 — package-card backdrop fills the visual height, and package logos
   use a quiet top-left vertical rail. The live editor is intentionally untouched. */
@media(min-width:781px){
  .kco-package-layout-auto .kco-package-layout-node.is-backdrop,
  .kco-package-layout-auto .kco-package-layout-node.is-background{
    width:100%!important;
    max-width:none!important;
    height:100%!important;
    bottom:0!important;
    overflow:visible!important;
  }
  .kco-package-layout-auto .kco-package-layout-node.is-backdrop>img,
  .kco-package-layout-auto .kco-package-layout-node.is-background>img{
    width:auto!important;
    height:100%!important;
    min-height:100%!important;
    max-height:100%!important;
    max-width:180%!important;
    object-fit:contain!important;
    object-position:center bottom!important;
  }
}

/* Package-card brand marks always start at the upper-left and continue
   vertically downward. This is independent from the editor logo position. */
.kco-package-card .kco-package-brand-stack{
  top:16px!important;
  bottom:auto!important;
  left:16px!important;
  right:auto!important;
  max-width:82px!important;
  display:flex!important;
  flex-direction:column!important;
  flex-wrap:nowrap!important;
  align-items:flex-start!important;
  justify-content:flex-start!important;
  gap:8px!important;
}
.kco-package-card.has-badge .kco-package-brand-stack{top:58px!important}
.kco-package-card .kco-package-brand-logo{
  flex:0 0 auto!important;
  max-width:74px!important;
  max-height:34px!important;
}
.kco-package-card .kco-package-brand-logo img{
  max-width:74px!important;
  max-height:32px!important;
  object-position:left center!important;
}
@media(max-width:780px){
  .kco-package-card .kco-package-brand-stack{
    top:12px!important;
    bottom:auto!important;
    left:12px!important;
    right:auto!important;
    max-width:62px!important;
    gap:6px!important;
  }
  .kco-package-card.has-badge .kco-package-brand-stack{top:48px!important}
  .kco-package-card .kco-package-brand-logo{max-width:58px!important;max-height:28px!important}
  .kco-package-card .kco-package-brand-logo img{max-width:58px!important;max-height:27px!important}
}

/* 3.1.27 — selectable category menu layouts + standalone embeddable cards. */
.kco-app.kco-menu-style-classic .kco-category-section,
.kco-app.kco-menu-style-wide .kco-category-section{
  position:relative;
  left:50%;
  width:100vw;
  max-width:100vw;
  margin-left:-50vw!important;
  margin-top:0!important;
}
.kco-app.kco-menu-style-classic .kco-category-grid,
.kco-app.kco-menu-style-wide .kco-category-grid{
  width:100%;
  margin:0;
}
@media(min-width:781px){
  .kco-app.kco-menu-style-classic .kco-category-grid,
  .kco-app.kco-menu-style-wide .kco-category-grid{grid-template-columns:repeat(3,minmax(0,1fr))}

  .kco-app.kco-menu-style-classic .kco-category-grid{gap:0}
  .kco-app.kco-menu-style-classic .kco-category-card{
    min-height:82px;
    border:0;
    border-radius:0;
    padding:12px 24px;
    display:flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    background:#f7f7f9;
    box-shadow:inset 0 0 0 1px rgba(20,25,35,.06);
    transform:none!important;
  }
  .kco-app.kco-menu-style-classic .kco-category-card:nth-child(even){background:#4b4b4b;color:#fff!important}
  .kco-app.kco-menu-style-classic .kco-category-card:nth-child(even) strong{color:#fff!important}
  .kco-app.kco-menu-style-classic .kco-category-card:nth-child(odd) strong{color:#272727!important}
  .kco-app.kco-menu-style-classic .kco-category-card.is-selected{box-shadow:inset 0 -4px 0 var(--kco-accent),inset 0 0 0 1px rgba(20,25,35,.08)}
  .kco-app.kco-menu-style-classic .kco-cat-icon,
  .kco-app.kco-menu-style-classic .kco-category-card small,
  .kco-app.kco-menu-style-classic .kco-category-card>b{display:none!important}
  .kco-app.kco-menu-style-classic .kco-category-card strong{font-size:14px;line-height:1.25;margin:0;font-weight:650}

  .kco-app.kco-menu-style-wide .kco-category-grid{gap:8px;padding:0 10px}
  .kco-app.kco-menu-style-wide .kco-category-card{
    min-height:92px;
    border-radius:11px;
    padding:13px 18px;
    display:grid;
    grid-template-columns:42px minmax(0,1fr) 24px;
    grid-template-rows:1fr;
    align-items:center;
    gap:12px;
    background:#fff;
  }
  .kco-app.kco-menu-style-wide .kco-cat-icon{width:40px;height:40px;border-radius:10px}
  .kco-app.kco-menu-style-wide .kco-cat-icon svg{width:22px;height:22px}
  .kco-app.kco-menu-style-wide .kco-category-card strong{font-size:15px;margin:0}
  .kco-app.kco-menu-style-wide .kco-category-card small{font-size:11px;margin-top:3px}
  .kco-app.kco-menu-style-wide .kco-category-card>b{justify-self:end}
}

@media(max-width:780px){
  .kco-app.kco-menu-style-classic .kco-category-section,
  .kco-app.kco-menu-style-wide .kco-category-section{left:50%;width:100vw;margin-left:-50vw!important}
  .kco-app.kco-menu-style-classic .kco-category-grid,
  .kco-app.kco-menu-style-wide .kco-category-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:0}
  .kco-app.kco-menu-style-classic .kco-category-card{
    min-height:72px;border:0;border-radius:0;padding:10px;display:flex;align-items:center;justify-content:center;text-align:center;transform:none!important
  }
  .kco-app.kco-menu-style-classic .kco-category-card:nth-child(even){background:#4b4b4b;color:#fff!important}
  .kco-app.kco-menu-style-classic .kco-category-card:nth-child(even) strong{color:#fff!important}
  .kco-app.kco-menu-style-classic .kco-category-card:nth-child(odd){background:#f7f7f9}
  .kco-app.kco-menu-style-classic .kco-cat-icon,
  .kco-app.kco-menu-style-classic .kco-category-card small,
  .kco-app.kco-menu-style-classic .kco-category-card>b{display:none!important}
  .kco-app.kco-menu-style-classic .kco-category-card strong{font-size:12px;margin:0}
  .kco-app.kco-menu-style-wide .kco-category-grid{gap:6px;padding:0 7px}
  .kco-app.kco-menu-style-wide .kco-category-card{min-height:84px;border-radius:10px;padding:10px;grid-template-rows:34px 1fr auto}
  .kco-app.kco-menu-style-wide .kco-cat-icon{width:34px;height:34px;border-radius:9px}
  .kco-app.kco-menu-style-wide .kco-cat-icon svg{width:18px;height:18px}
}

.kco-standalone-embed .kco-public-shell{max-width:none;padding:0!important;margin:0!important}
.kco-standalone-embed .kco-browser-section{
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
.kco-standalone-embed .kco-browser-head{display:none!important}
.kco-standalone-embed .kco-package-grid,
.kco-standalone-embed .kco-item-grid{grid-template-columns:1fr!important;gap:0!important}
.kco-standalone-embed .kco-package-card,
.kco-standalone-embed .kco-item-card{margin:0!important}
.kco-standalone-embed .kco-editor-section{margin-top:28px}
@media(min-width:781px){
  .kco-standalone-embed .kco-package-card,
  .kco-standalone-embed .kco-item-card{width:100%}
}

/* 3.1.28 — menu polish, original sweep hover, extra selector themes and
   stable full-height stand-mounted visuals. */
.kco-app.kco-menu-style-classic .kco-public-shell,
.kco-app.kco-menu-style-wide .kco-public-shell,
.kco-app.kco-menu-style-color-sweep .kco-public-shell,
.kco-app.kco-menu-style-dark .kco-public-shell{
  margin-top:calc(-1 * var(--kco-menu-top-offset,0px))!important;
}

/* New full-bleed selector families. */
.kco-app.kco-menu-style-color-sweep .kco-category-section,
.kco-app.kco-menu-style-dark .kco-category-section{
  position:relative;
  left:50%;
  width:100vw;
  max-width:100vw;
  margin-left:-50vw!important;
  margin-top:0!important;
}
.kco-app.kco-menu-style-color-sweep .kco-category-grid,
.kco-app.kco-menu-style-dark .kco-category-grid{width:100%;margin:0}

/* Old btn-effect behaviour: a blue layer sweeps from left to right. */
@media (hover:hover) and (pointer:fine){
  .kco-app.kco-menu-style-classic .kco-category-card,
  .kco-app.kco-menu-style-color-sweep .kco-category-card{
    overflow:hidden!important;
    isolation:isolate;
    transition:color .3s ease,box-shadow .3s ease!important;
  }
  .kco-app.kco-menu-style-classic .kco-category-card::before,
  .kco-app.kco-menu-style-color-sweep .kco-category-card::before{
    content:"";
    position:absolute;
    inset:0;
    z-index:0;
    background:rgba(46,159,255,.95);
    transform:scaleX(0);
    transform-origin:0 50%;
    transition:transform .3s ease-out;
    pointer-events:none;
  }
  .kco-app.kco-menu-style-color-sweep .kco-category-card::before{
    background:linear-gradient(90deg,rgba(46,159,255,.98),rgba(61,112,235,.98));
  }
  .kco-app.kco-menu-style-classic .kco-category-card>* ,
  .kco-app.kco-menu-style-color-sweep .kco-category-card>*{position:relative;z-index:1}
  .kco-app.kco-menu-style-classic .kco-category-card:hover::before,
  .kco-app.kco-menu-style-classic .kco-category-card:focus-visible::before,
  .kco-app.kco-menu-style-color-sweep .kco-category-card:hover::before,
  .kco-app.kco-menu-style-color-sweep .kco-category-card:focus-visible::before{transform:scaleX(1)}
  .kco-app.kco-menu-style-classic .kco-category-card:hover,
  .kco-app.kco-menu-style-classic .kco-category-card:focus-visible,
  .kco-app.kco-menu-style-color-sweep .kco-category-card:hover,
  .kco-app.kco-menu-style-color-sweep .kco-category-card:focus-visible{color:#fff!important;box-shadow:none!important}
  .kco-app.kco-menu-style-classic .kco-category-card:hover strong,
  .kco-app.kco-menu-style-classic .kco-category-card:focus-visible strong,
  .kco-app.kco-menu-style-color-sweep .kco-category-card:hover strong,
  .kco-app.kco-menu-style-color-sweep .kco-category-card:focus-visible strong{color:#fff!important}
}

@media(min-width:781px){
  .kco-app.kco-menu-style-color-sweep .kco-category-grid,
  .kco-app.kco-menu-style-dark .kco-category-grid{grid-template-columns:repeat(3,minmax(0,1fr))}

  /* Colour-block version inspired by the old majva/kekes/obol/crown palette. */
  .kco-app.kco-menu-style-color-sweep .kco-category-grid{gap:0}
  .kco-app.kco-menu-style-color-sweep .kco-category-card{
    min-height:86px;border:0;border-radius:0;padding:14px 24px;
    display:flex;align-items:center;justify-content:center;text-align:center;
    transform:none!important;color:#fff!important;box-shadow:inset 0 -2px 0 rgba(0,0,0,.12)
  }
  .kco-app.kco-menu-style-color-sweep .kco-category-card:nth-child(6n+1){background:#a8327b}
  .kco-app.kco-menu-style-color-sweep .kco-category-card:nth-child(6n+2){background:#5482ab}
  .kco-app.kco-menu-style-color-sweep .kco-category-card:nth-child(6n+3){background:#718087}
  .kco-app.kco-menu-style-color-sweep .kco-category-card:nth-child(6n+4){background:#ee4c58}
  .kco-app.kco-menu-style-color-sweep .kco-category-card:nth-child(6n+5){background:#6a9c84}
  .kco-app.kco-menu-style-color-sweep .kco-category-card:nth-child(6n){background:#f68d42}
  .kco-app.kco-menu-style-color-sweep .kco-category-card strong{font-size:14px;line-height:1.25;margin:0;color:#fff!important;font-weight:700}
  .kco-app.kco-menu-style-color-sweep .kco-cat-icon,
  .kco-app.kco-menu-style-color-sweep .kco-category-card small,
  .kco-app.kco-menu-style-color-sweep .kco-category-card>b{display:none!important}

  /* Dark premium full-width tiles: still 3×2, but with icons and depth. */
  .kco-app.kco-menu-style-dark .kco-category-grid{gap:1px;background:#303543}
  .kco-app.kco-menu-style-dark .kco-category-card{
    min-height:100px;border:0;border-radius:0;padding:16px 24px;
    grid-template-columns:44px minmax(0,1fr) 22px;grid-template-rows:1fr;
    align-items:center;gap:13px;background:#171b27;color:#fff!important;transform:none!important;
    transition:background .22s ease,box-shadow .22s ease!important
  }
  .kco-app.kco-menu-style-dark .kco-category-card:nth-child(even){background:#202635}
  .kco-app.kco-menu-style-dark .kco-cat-icon{width:40px;height:40px;border-radius:11px;background:rgba(255,255,255,.08);color:#fff}
  .kco-app.kco-menu-style-dark .kco-category-card strong{margin:0;color:#fff!important;font-size:15px}
  .kco-app.kco-menu-style-dark .kco-category-card small{margin-top:3px;color:#aeb6c8!important;font-size:11px}
  .kco-app.kco-menu-style-dark .kco-category-card>b{color:#8e98ae}
  .kco-app.kco-menu-style-dark .kco-category-card:hover,
  .kco-app.kco-menu-style-dark .kco-category-card:focus-visible{background:linear-gradient(90deg,var(--kco-accent),var(--kco-accent-2));box-shadow:inset 0 0 0 1px rgba(255,255,255,.14)!important}
  .kco-app.kco-menu-style-dark .kco-category-card:hover small,
  .kco-app.kco-menu-style-dark .kco-category-card:focus-visible small{color:rgba(255,255,255,.82)!important}
}

@media(max-width:780px){
  .kco-app.kco-menu-style-color-sweep .kco-category-section,
  .kco-app.kco-menu-style-dark .kco-category-section{left:50%;width:100vw;margin-left:-50vw!important}
  .kco-app.kco-menu-style-color-sweep .kco-category-grid,
  .kco-app.kco-menu-style-dark .kco-category-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:0}
  .kco-app.kco-menu-style-color-sweep .kco-category-card{
    min-height:72px;border:0;border-radius:0;padding:10px;display:flex;align-items:center;justify-content:center;text-align:center;color:#fff!important;transform:none!important
  }
  .kco-app.kco-menu-style-color-sweep .kco-category-card:nth-child(6n+1){background:#a8327b}
  .kco-app.kco-menu-style-color-sweep .kco-category-card:nth-child(6n+2){background:#5482ab}
  .kco-app.kco-menu-style-color-sweep .kco-category-card:nth-child(6n+3){background:#718087}
  .kco-app.kco-menu-style-color-sweep .kco-category-card:nth-child(6n+4){background:#ee4c58}
  .kco-app.kco-menu-style-color-sweep .kco-category-card:nth-child(6n+5){background:#6a9c84}
  .kco-app.kco-menu-style-color-sweep .kco-category-card:nth-child(6n){background:#f68d42}
  .kco-app.kco-menu-style-color-sweep .kco-category-card strong{font-size:12px;margin:0;color:#fff!important}
  .kco-app.kco-menu-style-color-sweep .kco-cat-icon,
  .kco-app.kco-menu-style-color-sweep .kco-category-card small,
  .kco-app.kco-menu-style-color-sweep .kco-category-card>b{display:none!important}

  .kco-app.kco-menu-style-dark .kco-category-card{
    min-height:78px;border:0;border-radius:0;padding:10px 12px;background:#171b27;color:#fff!important;
    display:grid;grid-template-columns:34px 1fr;grid-template-rows:1fr;align-items:center;gap:9px;transform:none!important
  }
  .kco-app.kco-menu-style-dark .kco-category-card:nth-child(even){background:#222838}
  .kco-app.kco-menu-style-dark .kco-cat-icon{width:32px;height:32px;border-radius:9px;background:rgba(255,255,255,.08);color:#fff}
  .kco-app.kco-menu-style-dark .kco-cat-icon svg{width:17px;height:17px}
  .kco-app.kco-menu-style-dark .kco-category-card strong{margin:0;color:#fff!important;font-size:11px}
  .kco-app.kco-menu-style-dark .kco-category-card small,
  .kco-app.kco-menu-style-dark .kco-category-card>b{display:none!important}
}

/* A single stand-mounted/high item uses the stage itself as its clipping box.
   This fixes stand speaker pairs whose tops were previously cropped after the
   backdrop type was demoted to a medium item. */
.kco-stage-node.is-backdrop{
  overflow:visible!important;
  bottom:0!important;
}
.kco-stage-node.is-backdrop>img,
.kco-stage-node.is-backdrop.is-pair .kco-stage-pair,
.kco-stage-node.is-backdrop.is-pair .kco-stage-pair img{
  object-position:center bottom!important;
}


/* 3.1.29 — editor-only vertical safety for medium/wide/small devices.
   Sparse scenes used to size a speaker from width, allowing it to become taller
   than the short editor stage and be cropped at the top. The JS supplies a
   per-node ceiling based on the actual stage height. Package cards are untouched. */
.kco-stage .kco-stage-node:not(.is-backdrop)>img{
  max-height:var(--kco-stage-safe-max-h,255px)!important;
}
.kco-stage .kco-stage-node:not(.is-backdrop).is-pair .kco-stage-pair{
  max-height:var(--kco-stage-safe-max-h,255px)!important;
}
.kco-stage .kco-stage-node:not(.is-backdrop).is-pair .kco-stage-pair img{
  max-height:var(--kco-stage-safe-max-h,255px)!important;
}

/* 3.1.30 — true original-style responsive category tiles.
   The legacy selector was a 3×2 flex grid even at narrow widths. Keeping three
   equal columns is what creates the checkerboard pattern; the previous 2-column
   mobile override turned it into two vertical stripes. */
.kco-app.kco-menu-style-classic .kco-category-section{
  margin-top:0!important;
  margin-bottom:0!important;
  padding-top:0!important;
}
.kco-app.kco-menu-style-classic .kco-category-grid{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:0!important;
  padding:0!important;
  margin:0!important;
}
.kco-app.kco-menu-style-classic .kco-category-card{
  width:100%!important;
  min-width:0!important;
  min-height:clamp(62px,8.2vw,82px)!important;
  margin:0!important;
  padding:clamp(8px,1.6vw,18px) 6px!important;
  border:0!important;
  border-radius:0!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  text-align:center!important;
  transform:none!important;
  box-shadow:inset 0 -2px 0 rgba(0,0,0,.10)!important;
}
.kco-app.kco-menu-style-classic .kco-category-card strong{
  margin:0!important;
  font-size:clamp(9px,1.9vw,14px)!important;
  line-height:1.25!important;
  font-weight:650!important;
  overflow-wrap:anywhere;
}
.kco-app.kco-menu-style-classic .kco-category-card.is-selected{
  box-shadow:inset 0 -2px 0 rgba(0,0,0,.10)!important;
}

/* The coloured sweep variant is also a square/tile layout; keep the same 3-column
   geometry so shrinking the viewport does not suddenly rearrange the checkerboard. */
.kco-app.kco-menu-style-color-sweep .kco-category-grid{
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
}
.kco-app.kco-menu-style-color-sweep .kco-category-card{
  min-height:clamp(62px,8.2vw,86px)!important;
  padding:clamp(8px,1.6vw,16px) 6px!important;
}
.kco-app.kco-menu-style-color-sweep .kco-category-card strong{
  font-size:clamp(9px,1.9vw,14px)!important;
  line-height:1.25!important;
  overflow-wrap:anywhere;
}

/* Full-bleed modes must not inherit a phone-only top spacer from the shortcode
   section. JS supplies the actual Divi wrapper gap through --kco-menu-top-offset. */
@media(max-width:780px){
  .kco-app.kco-menu-style-classic .kco-public-shell,
  .kco-app.kco-menu-style-wide .kco-public-shell,
  .kco-app.kco-menu-style-color-sweep .kco-public-shell,
  .kco-app.kco-menu-style-dark .kco-public-shell{
    padding-top:0!important;
    margin-top:calc(-1 * var(--kco-menu-top-offset,0px))!important;
  }
  .kco-app.kco-menu-style-classic .kco-category-section,
  .kco-app.kco-menu-style-color-sweep .kco-category-section{
    margin-top:0!important;
    padding-top:0!important;
  }
  .kco-app.kco-menu-style-classic .kco-category-grid,
  .kco-app.kco-menu-style-color-sweep .kco-category-grid{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
  }
}

/* Very small phones still keep the original three columns, but tighten typography
   instead of switching to two columns. */
@media(max-width:390px){
  .kco-app.kco-menu-style-classic .kco-category-card,
  .kco-app.kco-menu-style-color-sweep .kco-category-card{
    min-height:58px!important;
    padding:7px 4px!important;
  }
  .kco-app.kco-menu-style-classic .kco-category-card strong,
  .kco-app.kco-menu-style-color-sweep .kco-category-card strong{
    font-size:9px!important;
    line-height:1.18!important;
  }
}

/* 3.1.31 — reliable full-bleed rectangular category menus.
   Do not pull the entire app upward: Divi may clip that transform and hide the
   first tile row. We flatten only empty shortcode wrappers and let the selector
   itself break out to the viewport. */
body .kco-fullbleed-host{
  overflow:visible!important;
}
body .kco-fullbleed-host.kco-fullbleed-flush-top{
  padding-top:0!important;
  margin-top:0!important;
}

.kco-app.kco-menu-style-classic .kco-public-shell,
.kco-app.kco-menu-style-wide .kco-public-shell,
.kco-app.kco-menu-style-color-sweep .kco-public-shell,
.kco-app.kco-menu-style-dark .kco-public-shell{
  margin-top:0!important;
  padding-top:0!important;
}

/* All rectangular themes are true viewport-width blocks. margin-inline based
   breakout is more stable than accumulating negative margins on nested Divi rows. */
.kco-app.kco-menu-style-classic .kco-category-section,
.kco-app.kco-menu-style-wide .kco-category-section,
.kco-app.kco-menu-style-color-sweep .kco-category-section,
.kco-app.kco-menu-style-dark .kco-category-section{
  position:relative!important;
  left:50%!important;
  right:auto!important;
  width:100vw!important;
  max-width:none!important;
  margin-top:0!important;
  margin-bottom:0!important;
  margin-left:-50vw!important;
  margin-right:0!important;
  padding:0!important;
}

.kco-app.kco-menu-style-classic .kco-category-grid,
.kco-app.kco-menu-style-wide .kco-category-grid,
.kco-app.kco-menu-style-color-sweep .kco-category-grid,
.kco-app.kco-menu-style-dark .kco-category-grid{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
}

/* Classic and colour sweep keep the exact 3x2 tile geometry at every size. */
.kco-app.kco-menu-style-classic .kco-category-card,
.kco-app.kco-menu-style-color-sweep .kco-category-card{
  min-width:0!important;
  min-height:clamp(58px,8vw,84px)!important;
  margin:0!important;
  border-radius:0!important;
  padding:clamp(7px,1.45vw,16px) clamp(4px,1vw,12px)!important;
}
.kco-app.kco-menu-style-classic .kco-category-card strong,
.kco-app.kco-menu-style-color-sweep .kco-category-card strong{
  font-size:clamp(9px,1.75vw,14px)!important;
  line-height:1.2!important;
  text-wrap:balance;
  overflow-wrap:normal!important;
  word-break:normal!important;
}

/* Wide light: still a full-width rectangle grid, but preserve its icon-led look
   on tablets/desktops. */
.kco-app.kco-menu-style-wide .kco-category-grid{gap:1px!important;background:#e7e9ef}
.kco-app.kco-menu-style-wide .kco-category-card{
  width:100%!important;
  min-width:0!important;
  min-height:clamp(66px,9vw,94px)!important;
  margin:0!important;
  border:0!important;
  border-radius:0!important;
  padding:clamp(8px,1.3vw,14px) clamp(7px,1.4vw,18px)!important;
}

/* Dark premium also fills the viewport. */
.kco-app.kco-menu-style-dark .kco-category-grid{gap:1px!important;background:#303543}
.kco-app.kco-menu-style-dark .kco-category-card{
  width:100%!important;
  min-width:0!important;
  min-height:clamp(66px,9vw,100px)!important;
  margin:0!important;
  border:0!important;
  border-radius:0!important;
  padding:clamp(8px,1.3vw,15px) clamp(7px,1.4vw,18px)!important;
}

@media(max-width:780px){
  /* No phone-only outer whitespace for any rectangular menu family. */
  .kco-app.kco-menu-style-classic .kco-public-shell,
  .kco-app.kco-menu-style-wide .kco-public-shell,
  .kco-app.kco-menu-style-color-sweep .kco-public-shell,
  .kco-app.kco-menu-style-dark .kco-public-shell{
    padding-top:0!important;
    margin-top:0!important;
  }
  .kco-app.kco-menu-style-classic .kco-category-section,
  .kco-app.kco-menu-style-wide .kco-category-section,
  .kco-app.kco-menu-style-color-sweep .kco-category-section,
  .kco-app.kco-menu-style-dark .kco-category-section{
    left:50%!important;
    width:100vw!important;
    margin-left:-50vw!important;
    margin-top:0!important;
    padding:0!important;
  }
  .kco-app.kco-menu-style-classic .kco-category-grid,
  .kco-app.kco-menu-style-wide .kco-category-grid,
  .kco-app.kco-menu-style-color-sweep .kco-category-grid,
  .kco-app.kco-menu-style-dark .kco-category-grid{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    width:100%!important;
    margin:0!important;
    padding:0!important;
  }

  .kco-app.kco-menu-style-wide .kco-category-card,
  .kco-app.kco-menu-style-dark .kco-category-card{
    min-height:68px!important;
    padding:8px 6px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    text-align:center!important;
    gap:0!important;
  }
  .kco-app.kco-menu-style-wide .kco-cat-icon,
  .kco-app.kco-menu-style-dark .kco-cat-icon,
  .kco-app.kco-menu-style-wide .kco-category-card small,
  .kco-app.kco-menu-style-dark .kco-category-card small,
  .kco-app.kco-menu-style-wide .kco-category-card>b,
  .kco-app.kco-menu-style-dark .kco-category-card>b{
    display:none!important;
  }
  .kco-app.kco-menu-style-wide .kco-category-card strong,
  .kco-app.kco-menu-style-dark .kco-category-card strong{
    margin:0!important;
    font-size:clamp(9px,2.7vw,12px)!important;
    line-height:1.18!important;
    text-wrap:balance;
    overflow-wrap:normal!important;
    word-break:normal!important;
  }
}

@media(max-width:390px){
  .kco-app.kco-menu-style-classic .kco-category-card,
  .kco-app.kco-menu-style-color-sweep .kco-category-card,
  .kco-app.kco-menu-style-wide .kco-category-card,
  .kco-app.kco-menu-style-dark .kco-category-card{
    min-height:60px!important;
    padding:7px 4px!important;
  }
  .kco-app.kco-menu-style-classic .kco-category-card strong,
  .kco-app.kco-menu-style-color-sweep .kco-category-card strong,
  .kco-app.kco-menu-style-wide .kco-category-card strong,
  .kco-app.kco-menu-style-dark .kco-category-card strong{
    font-size:9px!important;
    line-height:1.16!important;
  }
}

/* 3.1.31 final mobile parity guard.
   The 3-column geometry is intentional: with six categories it keeps the same
   left-to-right checkerboard/order as desktop instead of turning into vertical
   colour stripes. These rules sit last so older 2-column mobile declarations
   can never win in Divi/minified CSS combinations. */
@media(max-width:780px){
  .kco-app.kco-menu-style-classic .kco-category-grid,
  .kco-app.kco-menu-style-wide .kco-category-grid,
  .kco-app.kco-menu-style-color-sweep .kco-category-grid,
  .kco-app.kco-menu-style-dark .kco-category-grid{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
  }

  .kco-app.kco-menu-style-classic .kco-category-card:nth-child(odd){
    background:#f7f7f9!important;
    color:#272727!important;
  }
  .kco-app.kco-menu-style-classic .kco-category-card:nth-child(odd) strong{color:#272727!important}
  .kco-app.kco-menu-style-classic .kco-category-card:nth-child(even){
    background:#4b4b4b!important;
    color:#fff!important;
  }
  .kco-app.kco-menu-style-classic .kco-category-card:nth-child(even) strong{color:#fff!important}

  .kco-app.kco-menu-style-dark .kco-category-card:nth-child(odd){background:#171b27!important}
  .kco-app.kco-menu-style-dark .kco-category-card:nth-child(even){background:#222838!important}

  /* Dynamic mobile viewport units avoid the one-column horizontal drift seen
     when browser chrome changes the effective phone viewport width. */
  .kco-app.kco-menu-style-classic .kco-category-section,
  .kco-app.kco-menu-style-wide .kco-category-section,
  .kco-app.kco-menu-style-color-sweep .kco-category-section,
  .kco-app.kco-menu-style-dark .kco-category-section{
    width:100dvw!important;
    max-width:100dvw!important;
    margin-left:-50dvw!important;
  }
}

/* 3.1.32 — exact edge-to-edge rectangular menus at every viewport width.
   Divi may keep the shortcode inside a centred/max-width row even when the menu
   itself asks for 100vw. JavaScript now measures the real left gutter and writes
   the exact negative margin. These final rules deliberately remove every older
   50vw/50dvw breakout so they cannot fight the measured value. */
body .kco-fullbleed-overflow-host{
  overflow:visible!important;
  overflow-x:visible!important;
  clip-path:none!important;
}

.kco-app.kco-menu-style-classic .kco-category-section,
.kco-app.kco-menu-style-wide .kco-category-section,
.kco-app.kco-menu-style-color-sweep .kco-category-section,
.kco-app.kco-menu-style-dark .kco-category-section{
  left:0!important;
  right:auto!important;
  max-width:none!important;
  margin-right:0!important;
  padding-left:0!important;
  padding-right:0!important;
  transform:none!important;
}

/* Before JS runs, use the ordinary full-bleed fallback. Once JS has measured the
   real gutter its inline !important width/margin-left take precedence. */
.kco-app.kco-menu-style-classic .kco-category-section:not([data-kco-fullbleed-aligned="1"]),
.kco-app.kco-menu-style-wide .kco-category-section:not([data-kco-fullbleed-aligned="1"]),
.kco-app.kco-menu-style-color-sweep .kco-category-section:not([data-kco-fullbleed-aligned="1"]),
.kco-app.kco-menu-style-dark .kco-category-section:not([data-kco-fullbleed-aligned="1"]){
  width:100vw!important;
  margin-left:calc(50% - 50vw)!important;
}

@media(max-width:780px){
  .kco-app.kco-menu-style-classic .kco-category-section,
  .kco-app.kco-menu-style-wide .kco-category-section,
  .kco-app.kco-menu-style-color-sweep .kco-category-section,
  .kco-app.kco-menu-style-dark .kco-category-section{
    max-width:none!important;
    padding-left:0!important;
    padding-right:0!important;
  }
}


/* 3.1.33 — true mobile full-bleed fix.
   The previous alignment math was correct, but the selector was being clipped by
   KCO's own mobile overflow-x:hidden rules on .kco-app/.kco-public-shell. JS now
   marks the entire internal + Divi ancestor chain with kco-fullbleed-overflow-host;
   these final declarations intentionally win over every older mobile rule. */
body .kco-fullbleed-overflow-host{
  overflow:visible!important;
  overflow-x:visible!important;
  overflow-y:visible!important;
  clip:auto!important;
  clip-path:none!important;
  contain:none!important;
}

/* The app/shell may still be constrained to the Divi row width; that is fine as
   long as they do not clip the measured viewport-width category section. */
body .kco-app.kco-menu-style-classic,
body .kco-app.kco-menu-style-wide,
body .kco-app.kco-menu-style-color-sweep,
body .kco-app.kco-menu-style-dark,
body .kco-app.kco-menu-style-classic .kco-public-shell,
body .kco-app.kco-menu-style-wide .kco-public-shell,
body .kco-app.kco-menu-style-color-sweep .kco-public-shell,
body .kco-app.kco-menu-style-dark .kco-public-shell{
  overflow:visible!important;
  overflow-x:visible!important;
  clip-path:none!important;
}

/* Keep exactly three tiles across on phones, but make every cell shrinkable so
   no long Hungarian label can force the grid wider than the viewport. */
@media(max-width:780px){
  body .kco-app.kco-menu-style-classic .kco-category-section,
  body .kco-app.kco-menu-style-wide .kco-category-section,
  body .kco-app.kco-menu-style-color-sweep .kco-category-section,
  body .kco-app.kco-menu-style-dark .kco-category-section{
    overflow:visible!important;
    box-sizing:border-box!important;
  }
  body .kco-app.kco-menu-style-classic .kco-category-grid,
  body .kco-app.kco-menu-style-wide .kco-category-grid,
  body .kco-app.kco-menu-style-color-sweep .kco-category-grid,
  body .kco-app.kco-menu-style-dark .kco-category-grid{
    min-width:0!important;
    max-width:none!important;
    overflow:visible!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
  }
  body .kco-app.kco-menu-style-classic .kco-category-card,
  body .kco-app.kco-menu-style-wide .kco-category-card,
  body .kco-app.kco-menu-style-color-sweep .kco-category-card,
  body .kco-app.kco-menu-style-dark .kco-category-card{
    min-width:0!important;
    max-width:100%!important;
    overflow:hidden!important;
  }
  body .kco-app.kco-menu-style-classic .kco-category-card strong,
  body .kco-app.kco-menu-style-wide .kco-category-card strong,
  body .kco-app.kco-menu-style-color-sweep .kco-category-card strong,
  body .kco-app.kco-menu-style-dark .kco-category-card strong{
    min-width:0!important;
    max-width:100%!important;
    text-overflow:clip!important;
  }
}

/* 3.1.34 — package information model + bounded tall visuals.
   Package cards now mirror equipment cards: title/subtitle, compact linked
   contents, normal description, price/actions and optional technical block. */
.kco-package-subtitle{
  margin:4px 0 0!important;
  color:#555d71;
  font-size:13px;
  line-height:1.4;
}
.kco-package-items-inline{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:6px 14px;
  margin:12px 0 0;
}
.kco-package-items-inline a{
  position:relative;
  color:#3f4658!important;
  text-decoration:none!important;
  font-size:13px;
  line-height:1.35;
  font-weight:500;
  white-space:nowrap;
  transition:color .18s ease;
}
.kco-package-items-inline a::before{
  content:"•";
  color:var(--kco-accent);
  margin-right:6px;
  font-weight:900;
}
.kco-package-items-inline a:hover,
.kco-package-items-inline a:focus-visible{
  color:var(--kco-accent)!important;
  text-decoration:underline!important;
  text-underline-offset:3px;
}

/* Rich package titles must respect the editor. Plain text is no longer forced
   bold; <strong>/<b> still work normally when the author chooses them. */
.kco-package-card .kco-card-title-html{
  font-weight:400!important;
}
.kco-package-card .kco-card-title-html p{
  font-weight:inherit!important;
}
.kco-package-card .kco-card-title-html strong,
.kco-package-card .kco-card-title-html b{
  font-weight:700!important;
}

.kco-package-description-inline,
.kco-package-technical-inline{display:none}
.kco-package-mobile-details-button{display:none!important}

@media(min-width:781px){
  .kco-package-card,
  .kco-package-card.is-expanded{
    grid-template-columns:minmax(330px,44%) minmax(175px,190px) minmax(0,1fr)!important;
    grid-template-rows:auto auto auto auto!important;
    min-height:380px!important;
  }
  .kco-package-card .kco-package-visual,
  .kco-package-card.is-expanded .kco-package-visual{
    grid-column:1!important;
    grid-row:1/5!important;
    min-height:380px!important;
    height:100%!important;
  }
  .kco-package-card .kco-package-copy,
  .kco-package-card.is-expanded .kco-package-copy{
    grid-column:2/4!important;
    grid-row:1!important;
    padding:27px 30px 7px!important;
  }
  .kco-package-card .kco-package-copy h4{margin:0 0 4px!important}
  .kco-package-card .kco-card-title-html{margin:0 0 4px!important}
  .kco-package-card .kco-package-price,
  .kco-package-card.is-expanded .kco-package-price{
    grid-column:2!important;
    grid-row:2!important;
    padding:10px 18px 16px 30px!important;
    align-self:start!important;
  }
  .kco-package-card .kco-package-description-inline{
    display:block!important;
    grid-column:3!important;
    grid-row:2!important;
    padding:8px 30px 16px 24px!important;
    align-self:start!important;
    border-left:1px solid #edf0f5;
    min-height:82px;
  }
  .kco-package-card:not(:has(.kco-package-description-inline)) .kco-package-price{
    grid-column:2/4!important;
    padding-right:30px!important;
  }
  .kco-package-card .kco-card-actions,
  .kco-package-card.is-expanded .kco-card-actions{
    grid-column:2/4!important;
    grid-row:3!important;
    padding:3px 30px 18px!important;
  }
  .kco-package-card .kco-package-technical-inline{
    display:block!important;
    grid-column:2/4!important;
    grid-row:4!important;
    border-top:1px solid #edf0f5;
    background:#fbfbfd;
    padding:16px 30px 20px!important;
    align-self:stretch!important;
  }
  .kco-package-card .kco-package-mobile-rich-details,
  .kco-package-card .kco-package-mobile-details-button{
    display:none!important;
  }

  /* A tall/stand-mounted package device must not keep growing just because a
     long description makes the card taller. It stays floor-anchored and capped
     around the current good-looking Maxi-card scale. */
  .kco-package-layout-auto .kco-package-layout-node.is-backdrop,
  .kco-package-layout-auto .kco-package-layout-node.is-background{
    height:100%!important;
    max-height:405px!important;
    bottom:0!important;
  }
  .kco-package-layout-auto .kco-package-layout-node.is-backdrop>img,
  .kco-package-layout-auto .kco-package-layout-node.is-background>img{
    height:100%!important;
    max-height:405px!important;
    min-height:0!important;
    object-position:center bottom!important;
  }
  .kco-package-cover-image{
    max-height:420px!important;
    object-fit:contain!important;
    object-position:center bottom!important;
  }
}

@media(max-width:780px){
  .kco-package-card .kco-package-copy,
  .kco-package-card.is-expanded .kco-package-copy{
    grid-row:2!important;
  }
  .kco-package-items-inline{
    gap:5px 11px;
    margin-top:9px;
  }
  .kco-package-items-inline a{
    font-size:12px;
    white-space:normal;
  }
  .kco-package-description-inline,
  .kco-package-technical-inline{display:none!important}
  .kco-package-mobile-details-button{display:inline-flex!important;justify-content:center;align-items:center}
  .kco-package-card .kco-package-mobile-rich-details,
  .kco-package-card.is-expanded .kco-package-mobile-rich-details{
    grid-column:1!important;
    grid-row:5!important;
    padding:16px 18px 20px!important;
  }
  .kco-package-layout-auto .kco-package-layout-node.is-backdrop,
  .kco-package-layout-auto .kco-package-layout-node.is-background{
    max-height:225px!important;
  }
  .kco-package-layout-auto .kco-package-layout-node.is-backdrop>img,
  .kco-package-layout-auto .kco-package-layout-node.is-background>img{
    max-height:225px!important;
    min-height:0!important;
  }
}

/* Equipment-card high/medium visual safety. Gallery images used to receive a
   generic 1.08 scale, which can crop the top of portrait stands/speakers. The
   visual role now controls alignment and removes unsafe overscaling. */
.kco-item-card.is-visual-backdrop .kco-item-visual .kco-gallery-slide,
.kco-item-card.is-visual-backdrop .kco-item-visual .kco-gallery-slide.is-active{
  object-position:center bottom!important;
  transform:scale(.98)!important;
  padding:14px 20px 18px!important;
}
.kco-item-card.is-visual-medium .kco-item-visual .kco-gallery-slide,
.kco-item-card.is-visual-medium .kco-item-visual .kco-gallery-slide.is-active{
  object-position:center bottom!important;
  transform:scale(1.01)!important;
}
.kco-item-card.is-visual-backdrop .kco-item-visual .kco-pair-slide,
.kco-item-card.is-visual-medium .kco-item-visual .kco-pair-slide{
  align-items:flex-end!important;
}
.kco-item-card.is-visual-backdrop .kco-item-visual .kco-pair-slide img{
  height:94%!important;
  max-height:100%!important;
  object-position:center bottom!important;
}
@media(min-width:781px){
  .kco-item-card.is-visual-backdrop .kco-item-visual .kco-gallery-slide,
  .kco-item-card.is-visual-backdrop .kco-item-visual .kco-gallery-slide.is-active{
    max-height:100%!important;
  }
}

/* 3.1.35 — unified compact information rhythm for equipment + package cards.
   Package descriptions no longer live in a narrow quarter-column.  The entire
   right-hand content area is used before price/actions, just like equipment. */
.kco-package-contents-inline{display:none}
.kco-package-price-main small,.kco-package-price-main strong{display:block}
.kco-package-deposit{display:block;color:#60687a}
.kco-package-deposit small{display:block!important;color:#8a91a3!important}
.kco-package-deposit b{display:block;color:#343b4d;font-weight:750}

/* WordPress rich-title markup can inject its own paragraph margins.  Keep title,
   subtitle and the description label on one predictable vertical rhythm. */
.kco-item-card .kco-item-copy>small{
  display:block!important;
  margin:0 0 4px!important;
  line-height:1.15!important;
}
.kco-item-card .kco-item-copy h4,
.kco-item-card .kco-card-title-html{
  margin:0 0 4px!important;
  line-height:1.15!important;
}
.kco-item-card .kco-card-title-html>p,
.kco-item-card .kco-card-title-html>div{
  margin:0!important;
  padding:0!important;
  line-height:inherit!important;
}
.kco-item-card .kco-item-subtitle{
  margin:0!important;
  padding:0!important;
  line-height:1.3!important;
}

@media(min-width:781px){
  .kco-package-card,
  .kco-package-card.is-expanded{
    display:grid!important;
    grid-template-columns:minmax(330px,44%) minmax(170px,24%) minmax(240px,32%)!important;
    grid-template-rows:auto auto auto auto auto!important;
    min-height:380px!important;
    height:auto!important;
  }
  .kco-package-card .kco-package-visual,
  .kco-package-card.is-expanded .kco-package-visual{
    grid-column:1!important;
    grid-row:1/6!important;
    min-height:380px!important;
    height:100%!important;
  }
  .kco-package-card .kco-package-copy,
  .kco-package-card.is-expanded .kco-package-copy{
    grid-column:2/4!important;
    grid-row:1!important;
    padding:20px 30px 1px!important;
    margin:0!important;
  }
  .kco-package-card .kco-package-copy h4,
  .kco-package-card .kco-card-title-html{
    margin:0 0 4px!important;
    line-height:1.15!important;
  }
  .kco-package-card .kco-card-title-html>p,
  .kco-package-card .kco-card-title-html>div{
    margin:0!important;
    padding:0!important;
    line-height:inherit!important;
  }
  .kco-package-card .kco-package-subtitle{
    margin:0!important;
    padding:0!important;
    line-height:1.3!important;
  }

  .kco-package-card .kco-package-contents-inline{
    display:block!important;
    grid-column:2/4!important;
    grid-row:2!important;
    padding:3px 30px 4px!important;
    margin:0!important;
    min-height:0!important;
  }
  .kco-package-card .kco-package-contents-inline .kco-inline-label{
    margin:0 0 2px!important;
  }
  .kco-package-card .kco-package-items-inline{
    display:flex!important;
    flex-wrap:wrap!important;
    gap:3px 14px!important;
    margin:0!important;
    padding:0!important;
  }
  .kco-package-card .kco-package-items-inline a{
    font-size:12.5px!important;
    line-height:1.3!important;
  }

  .kco-package-card .kco-package-description-inline,
  .kco-package-card.is-expanded .kco-package-description-inline{
    display:block!important;
    grid-column:2/4!important;
    grid-row:3!important;
    padding:2px 30px 5px!important;
    margin:0!important;
    border-left:0!important;
    min-height:0!important;
    align-self:start!important;
  }
  .kco-package-card .kco-package-description-inline .kco-inline-label{
    margin:0 0 2px!important;
  }
  .kco-package-card .kco-package-description-inline .kco-inline-rich{
    font-size:13px!important;
    line-height:1.38!important;
    margin:0!important;
  }
  .kco-package-card .kco-package-description-inline .kco-inline-rich p{margin:0 0 3px!important}
  .kco-package-card .kco-package-description-inline .kco-inline-rich ul,
  .kco-package-card .kco-package-description-inline .kco-inline-rich ol{
    margin:1px 0 3px!important;
    padding-left:18px!important;
  }
  .kco-package-card .kco-package-description-inline .kco-inline-rich li{margin:0!important}

  .kco-package-card .kco-package-price,
  .kco-package-card.is-expanded .kco-package-price{
    grid-column:2!important;
    grid-row:4!important;
    display:flex!important;
    align-items:center!important;
    align-self:center!important;
    gap:16px!important;
    padding:2px 8px 9px 30px!important;
    margin:0!important;
    min-width:0!important;
  }
  .kco-package-card .kco-package-price strong,
  .kco-package-card.is-expanded .kco-package-price strong{
    font-size:27px!important;
    line-height:1.05!important;
    margin:0!important;
  }
  .kco-package-card .kco-package-price-main small,
  .kco-package-card .kco-package-deposit small{
    font-size:9px!important;
    line-height:1.1!important;
  }
  .kco-package-card .kco-package-deposit b{
    font-size:14px!important;
    line-height:1.2!important;
  }
  .kco-package-card .kco-card-actions,
  .kco-package-card.is-expanded .kco-card-actions{
    grid-column:3!important;
    grid-row:4!important;
    display:flex!important;
    align-items:center!important;
    align-self:center!important;
    gap:8px!important;
    padding:2px 30px 9px 6px!important;
    margin:0!important;
  }
  .kco-package-card .kco-card-actions .kco-card-primary,
  .kco-package-card .kco-card-actions .kco-card-secondary{
    min-height:38px!important;
    margin:0!important;
    padding:8px 14px!important;
  }
  .kco-package-card .kco-package-technical-inline,
  .kco-package-card.is-expanded .kco-package-technical-inline{
    display:block!important;
    grid-column:2/4!important;
    grid-row:5!important;
    padding:7px 30px 9px!important;
    margin:0!important;
    border-top:1px solid #edf0f5!important;
    background:#fbfbfd!important;
  }
  .kco-package-card .kco-package-technical-inline .kco-inline-rich{
    font-size:12px!important;
    line-height:1.32!important;
    column-width:250px;
    column-gap:24px;
  }

  /* If a package has no description, collapse that row instead of reserving it. */
  .kco-package-card:not(:has(.kco-package-description-inline)) .kco-package-price{
    grid-row:3!important;
  }
  .kco-package-card:not(:has(.kco-package-description-inline)) .kco-card-actions{
    grid-row:3!important;
  }
  .kco-package-card:not(:has(.kco-package-description-inline)) .kco-package-technical-inline{
    grid-row:4!important;
  }

  /* Equipment card header rhythm: category -> title -> subtitle -> description
     with deliberate, equal small gaps instead of inherited WordPress margins. */
  .kco-item-card .kco-item-copy,
  .kco-item-card.is-expanded .kco-item-copy{
    padding:14px 22px 2px!important;
  }
  .kco-item-card .kco-item-copy h4,
  .kco-item-card.is-expanded .kco-item-copy h4,
  .kco-item-card .kco-card-title-html,
  .kco-item-card.is-expanded .kco-card-title-html{
    margin:0 0 4px!important;
  }
  .kco-item-card .kco-item-subtitle,
  .kco-item-card.is-expanded .kco-item-subtitle{
    margin:0!important;
  }
  .kco-item-card .kco-item-description-inline,
  .kco-item-card.is-expanded .kco-item-description-inline{
    padding:2px 22px 4px!important;
  }
  .kco-item-card .kco-item-description-inline .kco-inline-label,
  .kco-item-card.is-expanded .kco-item-description-inline .kco-inline-label{
    margin:0 0 2px!important;
  }
}

@media(max-width:780px){
  .kco-package-card .kco-package-copy,
  .kco-package-card.is-expanded .kco-package-copy{
    grid-column:1!important;
    grid-row:2!important;
    padding-bottom:2px!important;
  }
  .kco-package-card .kco-package-contents-inline,
  .kco-package-card.is-expanded .kco-package-contents-inline{
    display:block!important;
    grid-column:1!important;
    grid-row:3!important;
    padding:2px 18px 8px!important;
  }
  .kco-package-card .kco-package-contents-inline .kco-inline-label{margin:0 0 3px!important}
  .kco-package-card .kco-package-items-inline{margin:0!important;gap:4px 10px!important}
  .kco-package-card .kco-package-price,
  .kco-package-card.is-expanded .kco-package-price{
    grid-column:1!important;
    grid-row:4!important;
    display:flex!important;
    align-items:flex-end!important;
    gap:20px!important;
    padding-top:4px!important;
  }
  .kco-package-card .kco-package-deposit small{font-size:9px!important}
  .kco-package-card .kco-package-deposit b{font-size:13px!important}
  .kco-package-card .kco-card-actions,
  .kco-package-card.is-expanded .kco-card-actions{
    grid-column:1!important;
    grid-row:5!important;
  }
  .kco-package-card .kco-package-mobile-rich-details,
  .kco-package-card.is-expanded .kco-package-mobile-rich-details{
    grid-column:1!important;
    grid-row:6!important;
  }
}

/* 3.1.35 compact package-contents line: label and linked items share one row on desktop. */
@media(min-width:781px){
  .kco-package-card .kco-package-contents-inline{
    display:flex!important;
    align-items:baseline!important;
    flex-wrap:wrap!important;
    column-gap:12px!important;
    row-gap:2px!important;
  }
  .kco-package-card .kco-package-contents-inline .kco-inline-label{
    flex:0 0 auto!important;
    margin:0!important;
  }
  .kco-package-card .kco-package-items-inline{
    flex:1 1 420px!important;
    min-width:0!important;
  }
}

/* 3.1.36 — card information hierarchy polish.
   Equipment: title + subtitle are one compact heading group, while the
   description label starts as a clearly separate information block.
   Packages: Description precedes Package contents both in source and layout. */
.kco-item-card .kco-item-copy>small{
  margin:0 0 3px!important;
}
.kco-item-card .kco-item-copy h4,
.kco-item-card.is-expanded .kco-item-copy h4,
.kco-item-card .kco-card-title-html,
.kco-item-card.is-expanded .kco-card-title-html{
  margin-top:0!important;
  margin-bottom:1px!important;
  padding-bottom:0!important;
  line-height:1.12!important;
}
.kco-item-card .kco-item-subtitle,
.kco-item-card.is-expanded .kco-item-subtitle{
  margin:0!important;
  padding:0!important;
  line-height:1.22!important;
}

@media(min-width:781px){
  /* Remove the inherited bottom gap from the heading wrapper, then create the
     intentional gap at the start of the description block instead. */
  .kco-item-card .kco-item-copy,
  .kco-item-card.is-expanded .kco-item-copy{
    padding-top:14px!important;
    padding-bottom:0!important;
  }
  .kco-item-card .kco-item-description-inline,
  .kco-item-card.is-expanded .kco-item-description-inline{
    padding-top:8px!important;
    padding-bottom:4px!important;
  }
  .kco-item-card .kco-item-description-inline .kco-inline-label,
  .kco-item-card.is-expanded .kco-item-description-inline .kco-inline-label{
    display:block!important;
    margin:0 0 3px!important;
  }

  /* Package information order: heading -> description -> package contents ->
     price/actions -> technical information. All text blocks use the full
     right-hand width, so a normal description does not make a tall card. */
  .kco-package-card,
  .kco-package-card.is-expanded{
    grid-template-rows:auto auto auto auto auto!important;
  }
  .kco-package-card .kco-package-description-inline,
  .kco-package-card.is-expanded .kco-package-description-inline{
    display:block!important;
    grid-column:2/4!important;
    grid-row:2!important;
    padding:5px 30px 5px!important;
    margin:0!important;
    border-left:0!important;
    min-height:0!important;
    align-self:start!important;
  }
  .kco-package-card .kco-package-contents-inline,
  .kco-package-card.is-expanded .kco-package-contents-inline{
    display:flex!important;
    grid-column:2/4!important;
    grid-row:3!important;
    align-items:baseline!important;
    flex-wrap:wrap!important;
    column-gap:12px!important;
    row-gap:2px!important;
    padding:3px 30px 6px!important;
    margin:0!important;
    min-height:0!important;
  }
  .kco-package-card .kco-package-description-inline .kco-inline-label{
    margin:0 0 3px!important;
  }
  .kco-package-card .kco-package-contents-inline .kco-inline-label{
    flex:0 0 auto!important;
    margin:0!important;
  }
  .kco-package-card .kco-package-items-inline{
    flex:1 1 420px!important;
    min-width:0!important;
    margin:0!important;
  }
  .kco-package-card .kco-package-price,
  .kco-package-card.is-expanded .kco-package-price{
    grid-column:2!important;
    grid-row:4!important;
  }
  .kco-package-card .kco-card-actions,
  .kco-package-card.is-expanded .kco-card-actions{
    grid-column:3!important;
    grid-row:4!important;
  }
  .kco-package-card .kco-package-technical-inline,
  .kco-package-card.is-expanded .kco-package-technical-inline{
    grid-column:2/4!important;
    grid-row:5!important;
  }

  /* Packages without a written description start directly with their contents,
     with no empty CSS row reserved above it. */
  .kco-package-card:not(:has(.kco-package-description-inline)) .kco-package-contents-inline{
    grid-row:2!important;
  }
  .kco-package-card:not(:has(.kco-package-description-inline)) .kco-package-price{
    grid-row:3!important;
  }
  .kco-package-card:not(:has(.kco-package-description-inline)) .kco-card-actions{
    grid-row:3!important;
  }
  .kco-package-card:not(:has(.kco-package-description-inline)) .kco-package-technical-inline{
    grid-row:4!important;
  }
}

@media(max-width:780px){
  /* Mobile keeps the compact visible package contents. The long description is
     still available through Details, and source order remains semantically sane. */
  .kco-package-card .kco-package-contents-inline,
  .kco-package-card.is-expanded .kco-package-contents-inline{
    grid-row:3!important;
  }
  .kco-item-card .kco-item-copy,
  .kco-item-card.is-expanded .kco-item-copy{
    padding-bottom:0!important;
  }
  .kco-item-card .kco-item-description-inline,
  .kco-item-card.is-expanded .kco-item-description-inline{
    padding-top:7px!important;
  }
}

/* 3.1.38 — in-page video popup */
.kco-video{cursor:pointer}
.kco-video-modal[hidden]{display:none!important}
.kco-video-modal{position:fixed;inset:0;z-index:2147483000;display:grid;place-items:center;padding:28px;isolation:isolate}
.kco-video-modal-backdrop{position:absolute;inset:0;background:rgba(9,12,22,.78);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.kco-video-dialog{position:relative;z-index:1;width:min(1000px,92vw);max-height:92vh;overflow:hidden;border:1px solid rgba(255,255,255,.16);border-radius:20px;background:#0c101a;box-shadow:0 30px 90px rgba(0,0,0,.42);color:#fff}
.kco-video-dialog-head{height:58px;padding:0 16px 0 20px;display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid rgba(255,255,255,.1)}
.kco-video-dialog-head strong{font-size:16px;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kco-video-close{appearance:none;width:38px;height:38px;min-width:38px;border:1px solid rgba(255,255,255,.16);border-radius:50%;background:rgba(255,255,255,.08);color:#fff;font-size:27px;line-height:1;cursor:pointer;display:grid;place-items:center;padding:0 0 3px}
.kco-video-close:hover,.kco-video-close:focus-visible{background:rgba(255,255,255,.16);outline:2px solid rgba(255,255,255,.45);outline-offset:2px}
.kco-video-media{width:100%;background:#000;display:grid;place-items:center;min-height:260px}
.kco-video-media video,.kco-video-media iframe{display:block;width:100%;height:auto;aspect-ratio:16/9;max-height:calc(92vh - 112px);border:0;background:#000;object-fit:contain}
.kco-video-external{display:block;padding:11px 18px;text-align:right;color:#d8dcff!important;text-decoration:none!important;font-size:12px;font-weight:700;background:#101623;border-top:1px solid rgba(255,255,255,.08)}
.kco-video-external:hover{text-decoration:underline!important}
html.kco-video-modal-open,body.kco-video-modal-open{overflow:hidden!important}
@media(max-width:780px){.kco-video-modal{padding:10px}.kco-video-dialog{width:calc(100vw - 20px);max-height:90dvh;border-radius:15px}.kco-video-dialog-head{height:52px;padding:0 10px 0 14px}.kco-video-dialog-head strong{font-size:14px}.kco-video-media{min-height:180px}.kco-video-media video,.kco-video-media iframe{max-height:calc(90dvh - 104px)}.kco-video-external{padding:10px 14px}}

/* 3.1.42 — exact, zero-capable description spacing controls.
   The old unitless line-height control could never reach zero and the visible
   difference between 1.30 and 1.05 was small. These controls are pixel-based:
   0 means literally no EXTRA space while keeping text readable at 1em. */
.kco-item-description-inline .kco-inline-rich,
.kco-package-description-inline .kco-inline-rich,
.kco-item-card .kco-mobile-rich-details,
.kco-package-card .kco-package-mobile-rich-details{
  line-height:var(--kco-desc-line-height,1.25)!important;
}

.kco-item-description-inline .kco-inline-rich p,
.kco-package-description-inline .kco-inline-rich p,
.kco-item-card .kco-mobile-rich-details p,
.kco-package-card .kco-package-mobile-rich-details p{
  margin:0 0 var(--kco-desc-paragraph-gap,0px)!important;
  padding:0!important;
  line-height:inherit!important;
}
.kco-item-description-inline .kco-inline-rich p:last-child,
.kco-package-description-inline .kco-inline-rich p:last-child,
.kco-item-card .kco-mobile-rich-details p:last-child,
.kco-package-card .kco-package-mobile-rich-details p:last-child{
  margin-bottom:0!important;
}

.kco-item-description-inline .kco-inline-rich ul,
.kco-item-description-inline .kco-inline-rich ol,
.kco-package-description-inline .kco-inline-rich ul,
.kco-package-description-inline .kco-inline-rich ol,
.kco-item-card .kco-mobile-rich-details ul,
.kco-item-card .kco-mobile-rich-details ol,
.kco-package-card .kco-package-mobile-rich-details ul,
.kco-package-card .kco-package-mobile-rich-details ol{
  margin-top:0!important;
  margin-bottom:var(--kco-desc-paragraph-gap,0px)!important;
  padding-top:0!important;
  padding-bottom:0!important;
}
.kco-item-description-inline .kco-inline-rich li,
.kco-package-description-inline .kco-inline-rich li,
.kco-item-card .kco-mobile-rich-details li,
.kco-package-card .kco-package-mobile-rich-details li{
  margin:0 0 var(--kco-desc-list-gap,0px)!important;
  padding-top:0!important;
  padding-bottom:0!important;
  line-height:inherit!important;
}
.kco-item-description-inline .kco-inline-rich li:last-child,
.kco-package-description-inline .kco-inline-rich li:last-child,
.kco-item-card .kco-mobile-rich-details li:last-child,
.kco-package-card .kco-package-mobile-rich-details li:last-child{
  margin-bottom:0!important;
}
/* TinyMCE/wpautop can occasionally place paragraphs inside list items. Do not
   let those nested paragraphs reintroduce vertical space. */
.kco-item-description-inline .kco-inline-rich li>p,
.kco-package-description-inline .kco-inline-rich li>p,
.kco-item-card .kco-mobile-rich-details li>p,
.kco-package-card .kco-package-mobile-rich-details li>p{
  margin:0!important;
  padding:0!important;
}

.kco-item-description-inline .kco-inline-rich h1,
.kco-item-description-inline .kco-inline-rich h2,
.kco-item-description-inline .kco-inline-rich h3,
.kco-item-description-inline .kco-inline-rich h4,
.kco-item-description-inline .kco-inline-rich h5,
.kco-item-description-inline .kco-inline-rich h6,
.kco-package-description-inline .kco-inline-rich h1,
.kco-package-description-inline .kco-inline-rich h2,
.kco-package-description-inline .kco-inline-rich h3,
.kco-package-description-inline .kco-inline-rich h4,
.kco-package-description-inline .kco-inline-rich h5,
.kco-package-description-inline .kco-inline-rich h6{
  margin:0 0 var(--kco-desc-paragraph-gap,0px)!important;
  padding:0!important;
  line-height:var(--kco-desc-line-height,1.25)!important;
}

/* The fourth control also governs the description block itself, not only the
   text inside it. Therefore 0 removes the previously hard-coded 5–8px gaps. */
@media(min-width:781px){
  .kco-item-card .kco-item-description-inline,
  .kco-item-card.is-expanded .kco-item-description-inline{
    padding-top:var(--kco-desc-block-gap,0px)!important;
    padding-bottom:var(--kco-desc-block-gap,0px)!important;
  }
  .kco-package-card .kco-package-description-inline,
  .kco-package-card.is-expanded .kco-package-description-inline{
    padding-top:var(--kco-desc-block-gap,0px)!important;
    padding-bottom:var(--kco-desc-block-gap,0px)!important;
  }
}
.kco-item-card .kco-item-description-inline .kco-inline-label,
.kco-item-card.is-expanded .kco-item-description-inline .kco-inline-label,
.kco-package-card .kco-package-description-inline .kco-inline-label,
.kco-package-card.is-expanded .kco-package-description-inline .kco-inline-label{
  margin-top:0!important;
  margin-bottom:var(--kco-desc-block-gap,0px)!important;
  padding:0!important;
}



/* 3.1.43 — definitive description spacing override.
   Some earlier desktop card rules used more specific selectors together with
   !important (for example a fixed 1.38 line-height and 3px paragraph margin),
   so the 3.1.42 variables could not win the cascade. Keep this block last and
   intentionally match/exceed those selectors. */
.kco-app .kco-item-card .kco-item-description-inline .kco-inline-rich,
.kco-app .kco-item-card.is-expanded .kco-item-description-inline .kco-inline-rich,
.kco-app .kco-package-card .kco-package-description-inline .kco-inline-rich,
.kco-app .kco-package-card.is-expanded .kco-package-description-inline .kco-inline-rich,
.kco-app .kco-item-card .kco-mobile-rich-details,
.kco-app .kco-package-card .kco-package-mobile-rich-details{
  line-height:var(--kco-desc-line-height,1.25)!important;
}

.kco-app .kco-item-card .kco-item-description-inline .kco-inline-rich p,
.kco-app .kco-item-card.is-expanded .kco-item-description-inline .kco-inline-rich p,
.kco-app .kco-package-card .kco-package-description-inline .kco-inline-rich p,
.kco-app .kco-package-card.is-expanded .kco-package-description-inline .kco-inline-rich p,
.kco-app .kco-item-card .kco-mobile-rich-details p,
.kco-app .kco-package-card .kco-package-mobile-rich-details p{
  margin-top:0!important;
  margin-right:0!important;
  margin-bottom:var(--kco-desc-paragraph-gap,0px)!important;
  margin-left:0!important;
  padding:0!important;
  line-height:inherit!important;
}
.kco-app .kco-item-card .kco-item-description-inline .kco-inline-rich p:last-child,
.kco-app .kco-package-card .kco-package-description-inline .kco-inline-rich p:last-child,
.kco-app .kco-item-card .kco-mobile-rich-details p:last-child,
.kco-app .kco-package-card .kco-package-mobile-rich-details p:last-child{
  margin-bottom:0!important;
}

.kco-app .kco-item-card .kco-item-description-inline .kco-inline-rich ul,
.kco-app .kco-item-card .kco-item-description-inline .kco-inline-rich ol,
.kco-app .kco-package-card .kco-package-description-inline .kco-inline-rich ul,
.kco-app .kco-package-card .kco-package-description-inline .kco-inline-rich ol,
.kco-app .kco-item-card .kco-mobile-rich-details ul,
.kco-app .kco-item-card .kco-mobile-rich-details ol,
.kco-app .kco-package-card .kco-package-mobile-rich-details ul,
.kco-app .kco-package-card .kco-package-mobile-rich-details ol{
  margin:0 0 var(--kco-desc-paragraph-gap,0px)!important;
  padding-top:0!important;
  padding-bottom:0!important;
  line-height:inherit!important;
}
.kco-app .kco-item-card .kco-item-description-inline .kco-inline-rich li,
.kco-app .kco-package-card .kco-package-description-inline .kco-inline-rich li,
.kco-app .kco-item-card .kco-mobile-rich-details li,
.kco-app .kco-package-card .kco-package-mobile-rich-details li{
  margin:0 0 var(--kco-desc-list-gap,0px)!important;
  padding-top:0!important;
  padding-bottom:0!important;
  line-height:inherit!important;
}
.kco-app .kco-item-card .kco-item-description-inline .kco-inline-rich li:last-child,
.kco-app .kco-package-card .kco-package-description-inline .kco-inline-rich li:last-child,
.kco-app .kco-item-card .kco-mobile-rich-details li:last-child,
.kco-app .kco-package-card .kco-package-mobile-rich-details li:last-child{
  margin-bottom:0!important;
}

/* TinyMCE ENTER often creates <p>; list editing can create <li><p>...</p></li>.
   Neutralize both without touching the actual content formatting. */
.kco-app .kco-item-card .kco-item-description-inline .kco-inline-rich li>p,
.kco-app .kco-package-card .kco-package-description-inline .kco-inline-rich li>p,
.kco-app .kco-item-card .kco-mobile-rich-details li>p,
.kco-app .kco-package-card .kco-package-mobile-rich-details li>p{
  margin:0!important;
  padding:0!important;
  line-height:inherit!important;
}

/* Keep the label/block spacing zero-capable as well. */
.kco-app .kco-item-card .kco-item-description-inline,
.kco-app .kco-item-card.is-expanded .kco-item-description-inline,
.kco-app .kco-package-card .kco-package-description-inline,
.kco-app .kco-package-card.is-expanded .kco-package-description-inline{
  padding-top:var(--kco-desc-block-gap,0px)!important;
  padding-bottom:var(--kco-desc-block-gap,0px)!important;
}
.kco-app .kco-item-card .kco-item-description-inline .kco-inline-label,
.kco-app .kco-package-card .kco-package-description-inline .kco-inline-label{
  margin:0 0 var(--kco-desc-block-gap,0px)!important;
  padding:0!important;
}

/* Explicit line-breaks should not receive a browser/theme-specific extra gap. */
.kco-app .kco-item-description-inline .kco-inline-rich br,
.kco-app .kco-package-description-inline .kco-inline-rich br,
.kco-app .kco-mobile-rich-details br{
  margin:0!important;
  padding:0!important;
  line-height:inherit!important;
}


/* 3.1.44 — decimal description rhythm.
   The line-height is a real unitless multiplier and the remaining controls are
   em-based. This makes values such as 1.20 / 0.25 / 0.50 visibly distinct and
   keeps the same visual rhythm at different font sizes. */
.kco-app .kco-item-card .kco-item-description-inline .kco-inline-rich,
.kco-app .kco-item-card.is-expanded .kco-item-description-inline .kco-inline-rich,
.kco-app .kco-package-card .kco-package-description-inline .kco-inline-rich,
.kco-app .kco-package-card.is-expanded .kco-package-description-inline .kco-inline-rich,
.kco-app .kco-item-card .kco-mobile-rich-details,
.kco-app .kco-package-card .kco-package-mobile-rich-details{
  line-height:var(--kco-desc-line-height,1.25)!important;
}
.kco-app .kco-item-card .kco-item-description-inline .kco-inline-rich p,
.kco-app .kco-package-card .kco-package-description-inline .kco-inline-rich p,
.kco-app .kco-item-card .kco-mobile-rich-details p,
.kco-app .kco-package-card .kco-package-mobile-rich-details p{
  margin-bottom:var(--kco-desc-paragraph-gap,0.25em)!important;
}
.kco-app .kco-item-card .kco-item-description-inline .kco-inline-rich ul,
.kco-app .kco-item-card .kco-item-description-inline .kco-inline-rich ol,
.kco-app .kco-package-card .kco-package-description-inline .kco-inline-rich ul,
.kco-app .kco-package-card .kco-package-description-inline .kco-inline-rich ol,
.kco-app .kco-item-card .kco-mobile-rich-details ul,
.kco-app .kco-item-card .kco-mobile-rich-details ol,
.kco-app .kco-package-card .kco-package-mobile-rich-details ul,
.kco-app .kco-package-card .kco-package-mobile-rich-details ol{
  margin-bottom:var(--kco-desc-paragraph-gap,0.25em)!important;
}
.kco-app .kco-item-card .kco-item-description-inline .kco-inline-rich li,
.kco-app .kco-package-card .kco-package-description-inline .kco-inline-rich li,
.kco-app .kco-item-card .kco-mobile-rich-details li,
.kco-app .kco-package-card .kco-package-mobile-rich-details li{
  margin-bottom:var(--kco-desc-list-gap,0.18em)!important;
}
.kco-app .kco-item-card .kco-item-description-inline,
.kco-app .kco-item-card.is-expanded .kco-item-description-inline,
.kco-app .kco-package-card .kco-package-description-inline,
.kco-app .kco-package-card.is-expanded .kco-package-description-inline{
  padding-top:var(--kco-desc-block-gap,0.20em)!important;
  padding-bottom:var(--kco-desc-block-gap,0.20em)!important;
}
.kco-app .kco-item-card .kco-item-description-inline .kco-inline-label,
.kco-app .kco-package-card .kco-package-description-inline .kco-inline-label{
  margin-bottom:var(--kco-desc-block-gap,0.20em)!important;
}


/* 3.1.46 — mobile package cards: show the useful description first.
   The component list moves behind “Részletek”, together with technical data.
   Desktop layout is unchanged. */
@media(max-width:780px){
  .kco-app .kco-package-card .kco-package-description-inline,
  .kco-app .kco-package-card.is-expanded .kco-package-description-inline{
    display:block!important;
    grid-column:1!important;
    grid-row:3!important;
    margin:0!important;
    padding-left:18px!important;
    padding-right:18px!important;
    border-left:0!important;
    min-height:0!important;
  }
  .kco-app .kco-package-card .kco-package-contents-inline{
    display:none!important;
  }
  .kco-app .kco-package-card.is-expanded .kco-package-contents-inline{
    display:block!important;
    grid-column:1!important;
    grid-row:4!important;
    padding:6px 18px 8px!important;
    margin:0!important;
  }
  .kco-app .kco-package-card .kco-package-price{
    grid-column:1!important;
    grid-row:4!important;
  }
  .kco-app .kco-package-card.is-expanded .kco-package-price{
    grid-column:1!important;
    grid-row:5!important;
  }
  .kco-app .kco-package-card .kco-card-actions{
    grid-column:1!important;
    grid-row:5!important;
  }
  .kco-app .kco-package-card.is-expanded .kco-card-actions{
    grid-column:1!important;
    grid-row:6!important;
  }
  .kco-app .kco-package-card .kco-package-mobile-rich-details,
  .kco-app .kco-package-card.is-expanded .kco-package-mobile-rich-details{
    grid-column:1!important;
    grid-row:7!important;
  }
  .kco-app .kco-package-card .kco-package-mobile-rich-details.is-empty{
    display:none!important;
    padding:0!important;
    border:0!important;
  }
}


/* 3.1.47 — edge-safe stand/backdrop rendering.
   Important: a “magas / háttér” PNG may contain meaningful pixels right up to
   every edge (for example a light bar across the full width plus tripod feet and
   a bag at the bottom). The older height-driven rule allowed the actual image to
   become wider than its node (`max-width:180%`), so the outer card clipped parts
   of the product. The node is now the safety rectangle and the source image is
   always CONTAINED inside it. No stretching, no side/top/bottom crop. */
.kco-package-layout-auto .kco-package-layout-node.is-backdrop,
.kco-package-layout-auto .kco-package-layout-node.is-background{
  width:var(--kco-backdrop-w,90%)!important;
  max-width:var(--kco-backdrop-w,90%)!important;
  height:var(--kco-backdrop-h,94%)!important;
  max-height:var(--kco-backdrop-h,94%)!important;
  bottom:var(--kco-backdrop-bottom,1.5%)!important;
  overflow:hidden!important;
  box-sizing:border-box!important;
  padding:1.25%!important;
}
.kco-package-layout-auto .kco-package-layout-node.is-backdrop>img,
.kco-package-layout-auto .kco-package-layout-node.is-background>img{
  display:block!important;
  width:100%!important;
  height:100%!important;
  min-width:0!important;
  min-height:0!important;
  max-width:100%!important;
  max-height:100%!important;
  padding:0!important;
  margin:0!important;
  object-fit:contain!important;
  object-position:center bottom!important;
  transform:none!important;
}
.kco-package-layout-auto .kco-package-layout-node.is-backdrop.is-pair .kco-package-pair-visual,
.kco-package-layout-auto .kco-package-layout-node.is-background.is-pair .kco-package-pair-visual{
  width:100%!important;
  height:100%!important;
  max-width:100%!important;
  max-height:100%!important;
  overflow:hidden!important;
  display:flex!important;
  align-items:flex-end!important;
  justify-content:center!important;
}
.kco-package-layout-auto .kco-package-layout-node.is-backdrop.is-pair .kco-package-pair-visual img,
.kco-package-layout-auto .kco-package-layout-node.is-background.is-pair .kco-package-pair-visual img{
  width:62%!important;
  height:100%!important;
  max-width:62%!important;
  max-height:100%!important;
  object-fit:contain!important;
  object-position:var(--kco-backdrop-object-x,50%) bottom!important;
}

/* The live editor uses the same safety contract. The JS supplies a pixel height
   based on the current stage and a percentage width based on backdrop count. */
.kco-stage .kco-stage-node.is-backdrop{
  width:var(--kco-backdrop-w,90%)!important;
  max-width:var(--kco-backdrop-w,90%)!important;
  height:var(--kco-backdrop-h,94%)!important;
  max-height:var(--kco-backdrop-h,94%)!important;
  bottom:var(--kco-backdrop-bottom,1.5%)!important;
  overflow:hidden!important;
  box-sizing:border-box!important;
  padding:1.25%!important;
}
.kco-stage .kco-stage-node.is-backdrop>img{
  display:block!important;
  width:100%!important;
  height:100%!important;
  min-width:0!important;
  min-height:0!important;
  max-width:100%!important;
  max-height:100%!important;
  padding:0!important;
  margin:0!important;
  object-fit:contain!important;
  object-position:center bottom!important;
  transform:none!important;
}
.kco-stage .kco-stage-node.is-backdrop.is-pair .kco-stage-pair{
  width:100%!important;
  height:100%!important;
  max-width:100%!important;
  max-height:100%!important;
  overflow:hidden!important;
  align-items:flex-end!important;
}
.kco-stage .kco-stage-node.is-backdrop.is-pair .kco-stage-pair img{
  width:62%!important;
  height:100%!important;
  max-width:62%!important;
  max-height:100%!important;
  object-fit:contain!important;
  object-position:center bottom!important;
}


/* 3.1.48 — intelligent overlapping backdrop plane.
   Backdrop boxes may be almost full-width and overlap each other; this lets a
   wide/L-shaped stand keep useful height instead of being shrunk into a narrow
   column. The source itself still uses contain, so no product edge is cropped. */
.kco-package-layout-auto .kco-package-layout-node.is-backdrop,
.kco-package-layout-auto .kco-package-layout-node.is-background,
.kco-stage .kco-stage-node.is-backdrop{
  padding:.55%!important;
}
.kco-package-layout-auto .kco-package-layout-node.is-backdrop>img,
.kco-package-layout-auto .kco-package-layout-node.is-background>img,
.kco-stage .kco-stage-node.is-backdrop>img{
  object-position:var(--kco-backdrop-object-x,50%) bottom!important;
}
.kco-package-layout-auto .kco-package-layout-node.is-backdrop.is-pair .kco-package-pair-visual img,
.kco-package-layout-auto .kco-package-layout-node.is-background.is-pair .kco-package-pair-visual img,
.kco-stage .kco-stage-node.is-backdrop.is-pair .kco-stage-pair img{
  object-position:var(--kco-backdrop-object-x,50%) bottom!important;
}


/* 3.1.54 — one logical montage canvas everywhere.
   The admin package preview is a wide 680×410 stage, while a public package card's
   left column can become almost square when the text on the right makes the card
   taller. Previously the exact same percentage coordinates were interpreted in
   those two different aspect ratios, so the public montage looked compressed or
   differently overlapped even though the packing algorithm itself was identical.

   frontend.js now measures the available visual pane and places a 680:410 logical
   scene inside it (contain-style). All montage coordinates therefore live in the
   same coordinate system as the admin preview. Extra card height stays harmless
   empty breathing room instead of stretching/rearranging the equipment scene. */
.kco-package-visual{
  position:relative!important;
  overflow:hidden!important;
}
.kco-package-visual .kco-package-layout-auto{
  position:absolute!important;
  left:50%!important;
  right:auto!important;
  top:auto!important;
  bottom:0!important;
  width:var(--kco-scene-width,100%)!important;
  height:var(--kco-scene-height,60%)!important;
  min-height:0!important;
  max-height:100%!important;
  aspect-ratio:auto!important;
  transform:translateX(-50%)!important;
  padding:.55%!important;
  margin:0!important;
  overflow:hidden!important;
  box-sizing:border-box!important;
}
/* Keep the public rear plane on the exact same floor as the admin stage. */
.kco-package-visual .kco-package-layout-auto .kco-package-layout-node.is-backdrop,
.kco-package-visual .kco-package-layout-auto .kco-package-layout-node.is-background{
  bottom:var(--kco-backdrop-bottom,0%)!important;
}

/* 3.1.56 — compact public package cards + real horizontal logo rail.
   3.1.55 accidentally wrote the whole override as literal `\\n` text, so the
   browser ignored it. These rules are intentionally repeated here as valid CSS.

   Important: the montage still uses the shared 680:410 logical scene from
   3.1.54. The visual grid item no longer uses percentage height, because a
   spanning grid item with height:100% could feed its own computed height back
   into the grid and make the whole package card unnecessarily tall. */
@media (min-width:781px){
  .kco-app .kco-package-card,
  .kco-app .kco-package-card.is-expanded{
    min-height:340px!important;
    height:auto!important;
    align-items:stretch!important;
  }

  .kco-app .kco-package-card .kco-package-visual,
  .kco-app .kco-package-card.is-expanded .kco-package-visual{
    min-height:340px!important;
    height:auto!important;
    max-height:none!important;
    align-self:stretch!important;
  }

  /* Keep the information side compact without touching the editor-controlled
     rich-text line/list spacing. */
  .kco-app .kco-package-card .kco-package-copy,
  .kco-app .kco-package-card.is-expanded .kco-package-copy{
    padding-top:14px!important;
  }
  .kco-app .kco-package-card .kco-package-description-inline,
  .kco-app .kco-package-card.is-expanded .kco-package-description-inline{
    padding-top:2px!important;
    padding-bottom:3px!important;
  }
  .kco-app .kco-package-card .kco-package-contents-inline,
  .kco-app .kco-package-card.is-expanded .kco-package-contents-inline{
    padding-top:2px!important;
    padding-bottom:3px!important;
  }
  .kco-app .kco-package-card .kco-package-price,
  .kco-app .kco-package-card.is-expanded .kco-package-price,
  .kco-app .kco-package-card .kco-card-actions,
  .kco-app .kco-package-card.is-expanded .kco-card-actions{
    padding-bottom:6px!important;
  }
}

/* Package brand marks: a single horizontal rail from the upper-left.
   This deliberately overrides the older 3.1.26 vertical-stack rule. */
.kco-app .kco-package-card .kco-package-brand-stack,
.kco-app .kco-package-card .kco-package-brand-stack.bottom-left,
.kco-app .kco-package-card .kco-package-brand-stack.bottom-right{
  top:14px!important;
  bottom:auto!important;
  left:16px!important;
  right:16px!important;
  width:calc(100% - 32px)!important;
  max-width:calc(100% - 32px)!important;
  display:flex!important;
  flex-direction:row!important;
  flex-wrap:nowrap!important;
  align-items:center!important;
  justify-content:flex-start!important;
  align-content:center!important;
  gap:7px 12px!important;
}
.kco-app .kco-package-card.has-badge .kco-package-brand-stack,
.kco-app .kco-package-card.has-badge .kco-package-brand-stack.bottom-left,
.kco-app .kco-package-card.has-badge .kco-package-brand-stack.bottom-right{
  top:50px!important;
}
.kco-app .kco-package-card .kco-package-brand-logo{
  flex:0 1 auto!important;
  width:auto!important;
  height:auto!important;
  max-width:70px!important;
  max-height:30px!important;
}
.kco-app .kco-package-card .kco-package-brand-logo img{
  width:auto!important;
  height:auto!important;
  max-width:70px!important;
  max-height:29px!important;
  object-position:left center!important;
}

@media (max-width:780px){
  .kco-app .kco-package-card .kco-package-brand-stack,
  .kco-app .kco-package-card .kco-package-brand-stack.bottom-left,
  .kco-app .kco-package-card .kco-package-brand-stack.bottom-right{
    top:10px!important;
    bottom:auto!important;
    left:12px!important;
    right:12px!important;
    width:calc(100% - 24px)!important;
    max-width:calc(100% - 24px)!important;
    flex-direction:row!important;
    flex-wrap:wrap!important;
    align-items:center!important;
    justify-content:flex-start!important;
    gap:5px 8px!important;
  }
  .kco-app .kco-package-card.has-badge .kco-package-brand-stack,
  .kco-app .kco-package-card.has-badge .kco-package-brand-stack.bottom-left,
  .kco-app .kco-package-card.has-badge .kco-package-brand-stack.bottom-right{
    top:43px!important;
  }
  .kco-app .kco-package-card .kco-package-brand-logo{
    max-width:48px!important;
    max-height:23px!important;
  }
  .kco-app .kco-package-card .kco-package-brand-logo img{
    max-width:48px!important;
    max-height:22px!important;
  }
}


/* 3.1.57 — unified public package image pane.
   The logo rail and the montage now sit on one continuous flat surface; the old
   radial background made the lower montage region look like a separate panel.
   The logical 680:410 montage is vertically placed by frontend.js below the actual
   logo/badge height instead of always being glued to the bottom of a tall card. */
.kco-app .kco-package-card .kco-package-visual,
.kco-app .kco-package-card.is-expanded .kco-package-visual{
  background:#f5f6fa!important;
}
.kco-app .kco-package-card .kco-package-visual .kco-package-layout-auto,
.kco-app .kco-package-card.is-expanded .kco-package-visual .kco-package-layout-auto{
  top:var(--kco-scene-top,54px)!important;
  bottom:auto!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
}

/* 3.1.60 — category hero + scheduled promotional ribbon. */
.kco-category-hero{
  position:relative;
  overflow:hidden;
  margin:0 0 18px;
  padding:28px 30px;
  border-radius:26px;
  color:#fff;
  background:
    radial-gradient(circle at 88% 18%,rgba(255,255,255,.18),transparent 28%),
    radial-gradient(circle at 72% 120%,rgba(108,44,255,.42),transparent 34%),
    linear-gradient(118deg,#17263d 0%,#245d8b 46%,var(--kco-accent) 115%);
  box-shadow:0 18px 44px rgba(24,35,62,.14);
}
.kco-category-hero::after{
  content:"";
  position:absolute;
  inset:auto -80px -120px auto;
  width:300px;
  height:300px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.14);
  box-shadow:0 0 0 44px rgba(255,255,255,.035),0 0 0 88px rgba(255,255,255,.025);
  pointer-events:none;
}
.kco-category-hero-copy{position:relative;z-index:1;max-width:720px}
.kco-category-hero-copy>span{display:block;margin:0 0 6px;font-size:10px;line-height:1.2;font-weight:900;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.72)}
.kco-category-hero-copy h2{margin:0!important;color:#fff!important;font-size:34px!important;line-height:1.06!important;letter-spacing:-.025em}
.kco-category-hero-copy p{margin:9px 0 0!important;max-width:650px;color:rgba(255,255,255,.82)!important;font-size:14px;line-height:1.5}
.kco-promo-rail{position:relative;z-index:1;margin-top:22px}
.kco-promo-track{display:flex;gap:10px;align-items:stretch;overflow-x:auto;overscroll-behavior-inline:contain;scroll-snap-type:x proximity;padding:1px 1px 4px;scrollbar-width:thin}
.kco-promo-card{scroll-snap-align:start;flex:1 1 250px;min-width:230px;max-width:390px;min-height:78px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:11px;align-items:center;padding:10px 12px;border:1px solid rgba(255,255,255,.22);border-radius:15px;background:rgba(8,17,33,.26);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:#fff!important;text-decoration:none!important;transition:background .18s ease,transform .18s ease,border-color .18s ease}
.kco-promo-card:hover,.kco-promo-card:focus-visible{background:rgba(8,17,33,.38);border-color:rgba(255,255,255,.42);transform:translateY(-1px);color:#fff!important}
.kco-promo-image{width:58px;height:58px;display:grid;place-items:center;overflow:hidden;border-radius:11px;background:rgba(255,255,255,.94);padding:4px}
.kco-promo-image img{display:block;width:100%;height:100%;object-fit:contain}
.kco-promo-copy{display:block;min-width:0}
.kco-promo-copy small,.kco-promo-copy strong,.kco-promo-copy>span{display:block}
.kco-promo-copy small{margin:0 0 2px;font-size:8px;line-height:1.1;font-weight:900;letter-spacing:.11em;color:#9fe8ff;text-transform:uppercase}
.kco-promo-copy strong{font-size:14px;line-height:1.2;color:#fff}
.kco-promo-copy>span{margin-top:3px;font-size:11px;line-height:1.3;color:rgba(255,255,255,.72)}
.kco-promo-card>b{font-size:22px;line-height:1;color:rgba(255,255,255,.72)}

/* Match package heading rhythm to the already-correct equipment cards. */
.kco-package-card .kco-package-copy h4,
.kco-package-card.is-expanded .kco-package-copy h4,
.kco-package-card .kco-card-title-html,
.kco-package-card.is-expanded .kco-card-title-html{
  margin-top:0!important;
  margin-bottom:1px!important;
  padding-bottom:0!important;
  line-height:1.12!important;
}
.kco-package-card .kco-package-subtitle,
.kco-package-card.is-expanded .kco-package-subtitle{
  margin:0!important;
  padding:0!important;
  line-height:1.22!important;
}

/* Equipment technical information must stay one continuous row, never columns. */
.kco-item-card .kco-item-technical-inline .kco-inline-rich,
.kco-item-card.is-expanded .kco-item-technical-inline .kco-inline-rich{
  column-count:1!important;
  column-width:auto!important;
  column-gap:0!important;
}

@media(max-width:780px){
  .kco-category-hero{margin:0 0 12px;padding:20px 16px;border-radius:19px}
  .kco-category-hero-copy h2{font-size:27px!important}
  .kco-category-hero-copy p{font-size:12px;line-height:1.45}
  .kco-promo-rail{margin-top:16px}
  .kco-promo-track{gap:8px;margin-right:-16px;padding-right:16px}
  .kco-promo-card{flex:0 0 82%;min-width:0;max-width:none;min-height:72px;padding:9px 10px}
  .kco-promo-image{width:52px;height:52px}
  .kco-promo-copy strong{font-size:13px}
  .kco-promo-copy>span{font-size:10px}
}
.kco-category-hero + .kco-category-section{margin-top:18px}
@media(max-width:780px){.kco-category-hero + .kco-category-section{margin-top:12px}}

/* Rectangular/full-width category menus get the hero in the same viewport-wide rail,
   matching the useful top section of the previous rental pages. */
.kco-app.kco-menu-style-classic .kco-category-hero,
.kco-app.kco-menu-style-wide .kco-category-hero,
.kco-app.kco-menu-style-color-sweep .kco-category-hero,
.kco-app.kco-menu-style-dark .kco-category-hero{
  position:relative!important;
  left:50%!important;
  width:100vw!important;
  max-width:none!important;
  margin:0 0 0 -50vw!important;
  border-radius:0!important;
  padding-left:max(20px,calc((100vw - 1160px)/2))!important;
  padding-right:max(20px,calc((100vw - 1160px)/2))!important;
}
@media(max-width:780px){
  .kco-app.kco-menu-style-classic .kco-category-hero,
  .kco-app.kco-menu-style-wide .kco-category-hero,
  .kco-app.kco-menu-style-color-sweep .kco-category-hero,
  .kco-app.kco-menu-style-dark .kco-category-hero{
    padding-left:16px!important;
    padding-right:16px!important;
  }
}


/* 3.1.61 — sticky-header safe category hero + identical package/item text rhythm.
   The full-width hero keeps its background behind the fixed site navigation, but
   begins its readable content lower so the category title can never sit under the
   menu bar. Package subtitle -> description spacing now mirrors equipment cards. */
@media(min-width:781px){
  .kco-app.kco-menu-style-classic .kco-category-hero,
  .kco-app.kco-menu-style-wide .kco-category-hero,
  .kco-app.kco-menu-style-color-sweep .kco-category-hero,
  .kco-app.kco-menu-style-dark .kco-category-hero{
    padding-top:82px!important;
    padding-bottom:30px!important;
  }

  .kco-package-card .kco-package-copy,
  .kco-package-card.is-expanded .kco-package-copy{
    padding-bottom:0!important;
  }
  .kco-package-card .kco-package-description-inline,
  .kco-package-card.is-expanded .kco-package-description-inline{
    padding-top:8px!important;
  }
  .kco-package-card .kco-package-description-inline .kco-inline-label,
  .kco-package-card.is-expanded .kco-package-description-inline .kco-inline-label{
    margin:0 0 3px!important;
  }
}


/* 3.1.62 — mobile sticky-header compensation for the category hero.
   On narrow screens the Divi/mobile navigation is taller than the desktop bar.
   Keep the gradient full-bleed behind it, but start readable hero content below it. */
@media(max-width:780px){
  .kco-app.kco-menu-style-classic .kco-category-hero,
  .kco-app.kco-menu-style-wide .kco-category-hero,
  .kco-app.kco-menu-style-color-sweep .kco-category-hero,
  .kco-app.kco-menu-style-dark .kco-category-hero{
    padding-top:104px!important;
    padding-bottom:20px!important;
  }
}

/* 3.1.63 — SEO landing cleanup, banner phone and mobile cart controls. */
.kco-sr-only{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;
  border:0!important;
}
.kco-browser-head-search-only{
  justify-content:flex-end!important;
  align-items:center!important;
  margin-bottom:18px!important;
}
.kco-browser-head-search-only .kco-public-search{margin-left:auto!important}

.kco-category-hero-top{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:24px;
  align-items:end;
}
.kco-category-hero-copy h1,
.kco-category-hero-copy h2{
  margin:0!important;
  color:#fff!important;
  font-size:34px!important;
  line-height:1.06!important;
  letter-spacing:-.025em;
}
.kco-hero-phone{
  display:flex;
  align-items:center;
  gap:10px;
  min-height:52px;
  padding:9px 13px;
  border:1px solid rgba(255,255,255,.24);
  border-radius:14px;
  background:rgba(8,17,33,.20);
  color:#fff!important;
  text-decoration:none!important;
  box-shadow:none!important;
  backdrop-filter:blur(7px);
  -webkit-backdrop-filter:blur(7px);
  transition:background .18s ease,border-color .18s ease,transform .18s ease;
  white-space:nowrap;
}
.kco-hero-phone:hover,.kco-hero-phone:focus-visible{
  color:#fff!important;
  background:rgba(8,17,33,.34);
  border-color:rgba(255,255,255,.44);
  transform:translateY(-1px);
}
.kco-hero-phone>span:first-child{font-size:19px;line-height:1;color:#9fe8ff}
.kco-hero-phone>span:last-child{display:flex;align-items:baseline;gap:5px}
.kco-hero-phone small,.kco-hero-phone strong{display:block}
.kco-hero-phone small{font-size:8px;line-height:1.1;font-weight:850;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.68);margin:0}
.kco-hero-phone strong{font-size:14px;line-height:1.15;color:#fff}

@media(max-width:780px){
  .kco-browser-head-search-only{display:flex!important;margin-bottom:14px!important}
  .kco-browser-head-search-only .kco-public-search{margin-top:0!important}
  .kco-category-hero-top{grid-template-columns:1fr;gap:12px;align-items:start}
  .kco-category-hero-copy h1,.kco-category-hero-copy h2{font-size:27px!important}
  .kco-hero-phone{justify-self:end;min-height:46px;padding:8px 11px;border-radius:12px}
  .kco-hero-phone strong{font-size:13px}

  /* The persistent selection dock is the mobile "cart" before the editor opens.
     Keep both actions visible: continue editing or request a quote. */
  .kco-selection-dock{gap:8px!important;padding-left:11px!important}
  .kco-selection-dock>div:first-child{min-width:0!important;flex:1 1 auto!important}
  .kco-dock-actions{flex:0 0 auto!important;gap:5px!important}
  .kco-dock-edit{display:inline-flex!important;align-items:center!important;justify-content:center!important}
}
@media(max-width:420px){
  .kco-selection-dock strong{max-width:104px!important;font-size:10px!important}
  .kco-selection-dock span{font-size:8px!important}
  .kco-selection-dock small{font-size:11px!important}
  .kco-dock-actions button{padding:8px 7px!important;font-size:9px!important;line-height:1.05!important}
  .kco-dock-edit{display:inline-flex!important}
}


/* 3.1.68 — iOS/Safari-safe quote modal scrolling.
   On phones the overlay itself is the single scroll container. This avoids the
   nested fixed + overflow:auto pattern that can stop scrolling early in iOS Safari. */
.kco-modal[hidden]{display:none!important}
body>.kco-modal{--kco-accent:#3f36f4;--kco-accent-2:#6c2cff;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;box-sizing:border-box}
body>.kco-modal *,body>.kco-modal *::before,body>.kco-modal *::after{box-sizing:border-box}
html.kco-modal-open,body.kco-modal-open{overflow:hidden!important}

@media(max-width:780px){
  .kco-modal{
    display:block!important;
    position:fixed!important;
    inset:0!important;
    width:100%!important;
    height:100vh!important;
    height:100dvh!important;
    min-height:0!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    -webkit-overflow-scrolling:touch!important;
    overscroll-behavior-y:contain!important;
    touch-action:pan-y!important;
    padding:max(5px,env(safe-area-inset-top)) 5px max(24px,env(safe-area-inset-bottom))!important;
    z-index:2147483001!important;
  }
  .kco-modal-backdrop{
    position:fixed!important;
    inset:0!important;
  }
  .kco-modal-card{
    position:relative!important;
    width:calc(100vw - 10px)!important;
    max-width:760px!important;
    max-height:none!important;
    min-height:0!important;
    height:auto!important;
    overflow:visible!important;
    margin:0 auto!important;
    padding:17px 12px calc(28px + env(safe-area-inset-bottom))!important;
    border-radius:16px!important;
    touch-action:pan-y!important;
  }
  .kco-cf7-wrap .wpcf7-form{padding-bottom:4px!important}
  .kco-cf7-wrap input[type=submit],.kco-cf7-wrap button[type=submit],.kco-quote-submit{
    min-height:48px!important;
    margin-bottom:4px!important;
  }
}

/* Older iOS versions can calculate viewport units differently while Safari's
   toolbar expands/collapses. The fixed inset + min-height fallback keeps the
   overlay scrollable even there. */
@supports (-webkit-touch-callout:none){
  @media(max-width:780px){
    .kco-modal{min-height:-webkit-fill-available!important}
  }
}

/* 3.1.71 — iPhone/mobile: use the real CF7 submit button only.
   The synthetic fixed footer introduced in 3.1.69 is removed because iOS Safari
   can ignore its programmatic requestSubmit() path. The native CF7 control stays
   in normal document flow, while the 3.1.68 full-modal scrolling fix keeps it
   reachable at the bottom of the form. */
@media(max-width:780px){
  body>.kco-modal:not([hidden]) .kco-cf7-wrap input[type=submit],
  body>.kco-modal:not([hidden]) .kco-cf7-wrap button[type=submit],
  body>.kco-modal:not([hidden]) .kco-quote-form .kco-quote-submit{
    display:inline-block!important;
    visibility:visible!important;
    opacity:1!important;
    pointer-events:auto!important;
    min-height:50px!important;
    position:relative!important;
    z-index:2!important;
    touch-action:manipulation!important;
    -webkit-appearance:none!important;
    appearance:none!important;
    margin-bottom:calc(18px + env(safe-area-inset-bottom))!important;
  }
  body>.kco-modal .kco-modal-card{
    padding-bottom:calc(30px + env(safe-area-inset-bottom))!important;
  }
}


/* 3.1.72 — Mobile submit: keep the real CF7 control, only normalize its look.
   No synthetic/programmatic submit is used. */
@media(max-width:780px){
  body>.kco-modal:not([hidden]) .kco-cf7-wrap input[type=submit],
  body>.kco-modal:not([hidden]) .kco-cf7-wrap button[type=submit],
  body>.kco-modal:not([hidden]) .kco-quote-form .kco-quote-submit{
    display:block!important;
    width:100%!important;
    max-width:none!important;
    min-height:56px!important;
    height:auto!important;
    box-sizing:border-box!important;
    border:0!important;
    border-radius:14px!important;
    padding:15px 18px!important;
    margin:10px 0 calc(18px + env(safe-area-inset-bottom))!important;
    background:linear-gradient(135deg,var(--kco-accent),var(--kco-accent-2))!important;
    color:#fff!important;
    -webkit-text-fill-color:#fff!important;
    font:800 17px/1.2 Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif!important;
    letter-spacing:0!important;
    text-align:center!important;
    text-decoration:none!important;
    box-shadow:0 8px 20px rgba(63,54,244,.18)!important;
    cursor:pointer!important;
    -webkit-appearance:none!important;
    appearance:none!important;
  }
  body>.kco-modal:not([hidden]) .kco-cf7-wrap input[type=submit]:active,
  body>.kco-modal:not([hidden]) .kco-cf7-wrap button[type=submit]:active,
  body>.kco-modal:not([hidden]) .kco-quote-form .kco-quote-submit:active{
    transform:translateY(1px)!important;
  }
  body>.kco-modal:not([hidden]) .kco-cf7-wrap input[type=submit]:disabled,
  body>.kco-modal:not([hidden]) .kco-cf7-wrap button[type=submit]:disabled,
  body>.kco-modal:not([hidden]) .kco-quote-form .kco-quote-submit:disabled{
    opacity:.58!important;
    cursor:wait!important;
  }
}

/* 3.1.84 — ready-package physical scale follows the live editor.
   Percentage packing decides WHERE an item sits; these rules decide how tall its
   real object may become. This prevents narrow transparent PNGs (notably mic sets)
   and portrait medium devices (subwoofers) from becoming visually oversized. */
.kco-package-layout-auto.kco-role-normalized .kco-package-layout-node:not(.is-backdrop):not(.is-background)>img{
  max-height:var(--kco-package-role-h,255px)!important;
}
.kco-package-layout-auto.kco-role-normalized .kco-package-layout-node:not(.is-backdrop):not(.is-background).is-pair .kco-package-pair-visual{
  max-height:var(--kco-package-role-h,255px)!important;
}
.kco-package-layout-auto.kco-role-normalized .kco-package-layout-node:not(.is-backdrop):not(.is-background).is-pair .kco-package-pair-visual img{
  max-height:var(--kco-package-role-h,255px)!important;
}
.kco-package-layout-auto.kco-role-normalized.has-depth-layer .kco-package-layout-node:not(.is-backdrop):not(.is-background)>img{
  width:auto!important;
  height:var(--kco-package-role-h,auto)!important;
  max-height:var(--kco-package-role-h,none)!important;
  max-width:100%!important;
  object-fit:contain!important;
  object-position:center bottom!important;
}
.kco-package-layout-auto.kco-role-normalized.has-depth-layer .kco-package-layout-node:not(.is-backdrop):not(.is-background).is-pair .kco-package-pair-visual{
  height:var(--kco-package-role-h,auto)!important;
  max-height:var(--kco-package-role-h,none)!important;
  align-items:flex-end!important;
}
.kco-package-layout-auto.kco-role-normalized.has-depth-layer .kco-package-layout-node:not(.is-backdrop):not(.is-background).is-pair .kco-package-pair-visual img{
  width:auto!important;
  height:100%!important;
  max-height:100%!important;
  max-width:72%!important;
  object-fit:contain!important;
  object-position:center bottom!important;
}


/* 3.1.88 — small ready-package devices are always height-led.
   This is the only shared Rental/DJ visual correction in this release. It does
   not change packing positions, overlap, z-order or large-device sizing. */
.kco-package-layout-auto.kco-role-normalized .kco-package-layout-node.is-small:not(.is-backdrop):not(.is-background)>img,
.kco-package-layout-auto.kco-role-normalized .kco-package-layout-node[data-kco-visual-semantic="microphone"]:not(.is-backdrop):not(.is-background)>img{
  width:auto!important;
  height:var(--kco-package-role-h,auto)!important;
  max-width:100%!important;
  max-height:var(--kco-package-role-h,none)!important;
  object-fit:contain!important;
  object-position:center bottom!important;
}
.kco-package-layout-auto.kco-role-normalized .kco-package-layout-node.is-small.is-pair:not(.is-backdrop):not(.is-background) .kco-package-pair-visual,
.kco-package-layout-auto.kco-role-normalized .kco-package-layout-node[data-kco-visual-semantic="microphone"].is-pair:not(.is-backdrop):not(.is-background) .kco-package-pair-visual{
  height:var(--kco-package-role-h,auto)!important;
  max-height:var(--kco-package-role-h,none)!important;
  align-items:flex-end!important;
}
.kco-package-layout-auto.kco-role-normalized .kco-package-layout-node.is-small.is-pair:not(.is-backdrop):not(.is-background) .kco-package-pair-visual img,
.kco-package-layout-auto.kco-role-normalized .kco-package-layout-node[data-kco-visual-semantic="microphone"].is-pair:not(.is-backdrop):not(.is-background) .kco-package-pair-visual img{
  width:auto!important;
  height:100%!important;
  max-width:72%!important;
  max-height:100%!important;
  object-fit:contain!important;
  object-position:center bottom!important;
}


/* 3.2.13 — CF7 modal field grid.
   JS moves only the actual field wrappers into this grid.  The native CF7
   submit control remains outside it and keeps the existing iPhone-safe path. */
.kco-cf7-wrap .wpcf7-form{
  display:block!important;
  margin:0!important;
}
.kco-cf7-wrap .kco-cf7-fields-grid{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:14px 16px!important;
  align-items:start!important;
  margin:0 0 12px!important;
}
.kco-cf7-wrap .kco-cf7-field-half{
  grid-column:span 1!important;
  min-width:0!important;
  margin:0!important;
}
.kco-cf7-wrap .kco-cf7-field-full{
  grid-column:1 / -1!important;
  min-width:0!important;
  margin:0!important;
}
.kco-cf7-wrap .kco-cf7-fields-grid .uacf7-row,
.kco-cf7-wrap .kco-cf7-fields-grid [class*=uacf7-col-]{
  display:block!important;
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  margin:0!important;
  padding:0!important;
  float:none!important;
  flex:none!important;
}
.kco-cf7-wrap .kco-cf7-fields-grid [data-class="wpcf7cf_group"],
.kco-cf7-wrap .kco-cf7-fields-grid .wpcf7cf_group{
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  margin:0!important;
  padding:0!important;
}
/* Conditional Fields for CF7 uses data-class="wpcf7cf_group" on the
   wrapper and wpcf7cf-hidden while the condition is false. Never let the
   configurator layout rules expose a hidden group. */
.kco-cf7-wrap [data-class="wpcf7cf_group"].wpcf7cf-hidden,
.kco-cf7-wrap .wpcf7cf_group.wpcf7cf-hidden{
  display:none!important;
}
.kco-cf7-wrap .kco-cf7-fields-grid label{
  display:block!important;
  width:100%!important;
  margin:0!important;
}
.kco-cf7-wrap .kco-cf7-fields-grid input:not([type=submit]):not([type=checkbox]):not([type=radio]),
.kco-cf7-wrap .kco-cf7-fields-grid select,
.kco-cf7-wrap .kco-cf7-fields-grid textarea{
  width:100%!important;
  max-width:none!important;
}
.kco-cf7-wrap .wpcf7-form > .wpcf7-response-output{
  margin-top:10px!important;
}

/* Ready-package components can now be edited directly in the side summary. */
.kco-summary-row-package .kco-summary-package-controls{
  flex:0 0 auto!important;
}
.kco-summary-row-package .kco-summary-package-controls button{
  cursor:pointer!important;
}

@media(max-width:780px){
  .kco-cf7-wrap .kco-cf7-fields-grid{
    grid-template-columns:1fr!important;
    gap:10px!important;
    margin-bottom:10px!important;
  }
  .kco-cf7-wrap .kco-cf7-field-half,
  .kco-cf7-wrap .kco-cf7-field-full{
    grid-column:1!important;
  }
}

/* 3.2.15 — stable mobile package details.
   Opening “Részletek” must not recompose the card or resize/reposition the
   package image. The compact card remains exactly as it was; package contents
   and technical details are appended full-width underneath. */
@media(max-width:780px){
  .kco-app .kco-package-card.is-details-open-mobile{
    transform:none!important;
    border-color:color-mix(in srgb,var(--kco-accent) 38%,#dfe3ed)!important;
    box-shadow:0 16px 40px rgba(26,31,65,.09)!important;
    cursor:default!important;
  }

  /* No media/layout override on purpose: the normal compact package image
     geometry remains untouched while details are open. */

  /* The hidden component list becomes part of the detail section, but spans
     the complete card width instead of forcing the image/copy grid to change. */
  .kco-app .kco-package-card.is-details-open-mobile .kco-package-contents-inline{
    display:block!important;
    grid-column:1/-1!important;
    grid-row:6!important;
    width:100%!important;
    margin:0!important;
    padding:12px 18px 8px!important;
    border-top:1px solid #edf0f5!important;
    background:#fff!important;
  }
  .kco-app .kco-package-card.is-details-open-mobile .kco-package-items-inline{
    display:flex!important;
    flex-wrap:wrap!important;
    gap:4px 10px!important;
    margin:0!important;
    padding:0!important;
  }

  .kco-app .kco-package-card.is-details-open-mobile .kco-package-mobile-rich-details{
    display:block!important;
    grid-column:1/-1!important;
    grid-row:7!important;
    width:100%!important;
    margin:0!important;
    padding:10px 18px 18px!important;
  }
  .kco-app .kco-package-card.is-details-open-mobile .kco-package-mobile-rich-details.is-empty{
    display:none!important;
    padding:0!important;
    border:0!important;
  }
}
