/*
 * Copyright (c) 2026 retailize GmbH, Carl-Spaeter-Straße 5, 56070 Koblenz.
 * Proprietary and confidential. Unauthorized use is prohibited.
 */
:root {
	--fp-frame-magenta: #a8177d;
	--fp-frame-magenta-dark: #861062;
	--fp-frame-ink: #302932;
	--fp-frame-muted: #756e76;
	--fp-frame-line: #ddd8dc;
	--fp-frame-soft: #f5f3f4;
	--fp-frame-paper: #ffffff;
	--fp-frame-green: #11845b;
	--fp-frame-red: #c83c4d;
}

.fp-frame,
.fp-frame * { box-sizing: border-box; }
.fp-frame,
.fp-frame *,
.fp-frame *::before,
.fp-frame *::after { font-family: var(--fp-font, "Helvetica Neue", Helvetica, Arial, sans-serif) !important; }
.fp-frame button,
.fp-frame input { font: inherit; }
.fp-frame button { cursor: pointer; }
.fp-frame button:disabled { cursor: not-allowed; opacity: .42; }

.fp-frame {
	position: relative;
	width: 100vw;
	height: clamp(520px, calc(100dvh - 82px), 940px);
	margin-left: calc(50% - 50vw);
	overflow: hidden;
	background: var(--fp-frame-soft);
	color: var(--fp-frame-ink);
	font-family: var(--fp-font, "Helvetica Neue", Helvetica, Arial, sans-serif);
	font-size: 16px;
	line-height: 1.45;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	border-top: 1px solid var(--fp-frame-line);
	border-bottom: 1px solid var(--fp-frame-line);
}

.fp-frame__header {
	display: grid;
	grid-template-columns: minmax(250px, 1fr) minmax(260px, 1.3fr) minmax(130px, 1fr);
	align-items: center;
	height: 78px;
	padding: 0 24px;
	background: var(--fp-frame-paper);
	border-bottom: 1px solid var(--fp-frame-line);
}
.fp-frame__brand { display: flex; align-items: center; gap: 18px; color: var(--fp-frame-ink); text-decoration: none; }
.fp-frame__brand img { display: block; width: 158px; height: auto; }
.fp-frame__brand span { padding-left: 18px; border-left: 1px solid var(--fp-frame-line); font-size: 15px; font-weight: 750; }
.fp-frame__header-copy { display: flex; flex-direction: column; align-items: center; }
.fp-frame__header-copy strong { font-size: 18px; letter-spacing: -.02em; }
.fp-frame__header-copy span { color: var(--fp-frame-muted); font-size: 13px; }
.fp-frame__live { justify-self: end; display: flex; align-items: center; gap: 9px; font-weight: 750; }
.fp-frame__live i { width: 9px; height: 9px; border-radius: 50%; background: var(--fp-frame-green); box-shadow: 0 0 0 4px rgba(17,132,91,.12); }

.fp-frame__layout {
	display: grid;
	grid-template-columns: minmax(260px, 294px) minmax(360px, 1fr) minmax(284px, 326px);
	height: 100%;
	min-height: 0;
}
.fp-frame__catalog,
.fp-frame__summary { min-width: 0; min-height: 0; background: var(--fp-frame-paper); }
.fp-frame__catalog { display: flex; flex-direction: column; padding: 22px 18px 18px; border-right: 1px solid var(--fp-frame-line); }
.fp-frame__summary { display: flex; flex-direction: column; border-left: 1px solid var(--fp-frame-line); overflow: hidden; }
.fp-frame__summary-scroll { display: flex; flex: 1 1 auto; flex-direction: column; min-height: 0; overflow: auto; padding: 22px 20px 18px; }
.fp-frame__panel-head { display: flex; align-items: center; gap: 12px; margin-bottom: 18px; }
.fp-frame__panel-head > span { display: grid; place-items: center; width: 34px; height: 34px; flex: 0 0 auto; border: 1px solid var(--fp-frame-magenta); border-radius: 50%; color: var(--fp-frame-magenta); font-size: 12px; font-weight: 850; }
.fp-frame__panel-head > div { display: flex; flex-direction: column; }
.fp-frame__panel-head strong { font-size: 18px; letter-spacing: -.02em; }
.fp-frame__panel-head small { color: var(--fp-frame-muted); font-size: 13px; }

.fp-frame__manufacturers { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; margin-bottom: 14px; }
.fp-frame__manufacturers button { min-width: 0; padding: 10px 5px 8px; border: 1px solid var(--fp-frame-line); border-radius: 8px; background: var(--fp-frame-paper); color: var(--fp-frame-ink); text-align: center; }
.fp-frame__manufacturers button:hover { border-color: var(--fp-frame-magenta); }
.fp-frame__manufacturers button.is-active { border-color: var(--fp-frame-magenta); background: var(--fp-frame-magenta); color: #fff; }
.fp-frame__manufacturers strong,
.fp-frame__manufacturers small { display: block; overflow: hidden; text-overflow: ellipsis; }
.fp-frame__manufacturers strong { font-size: 13px; }
.fp-frame__manufacturers small { margin-top: 2px; font-size: 10px; opacity: .8; }
.fp-frame__type-filters { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 4px; margin: 0 0 9px; }
.fp-frame__type-filters button { min-width: 0; min-height: 32px; padding: 4px 2px; border: 1px solid var(--fp-frame-line); border-radius: 6px; background: var(--fp-frame-paper); color: var(--fp-frame-muted); font-size: 10px; font-weight: 800; line-height: 1; cursor: pointer; }
.fp-frame__type-filters button:hover { border-color: var(--fp-frame-magenta); color: var(--fp-frame-magenta); }
.fp-frame__type-filters button.is-active { border-color: var(--fp-frame-magenta); background: var(--fp-frame-magenta); color: #fff; box-shadow: 0 4px 12px rgba(168,23,125,.16); }
.fp-frame__type-filters button:focus-visible { outline: 3px solid rgba(168,23,125,.22); outline-offset: 2px; }
.fp-frame__search { display: flex; align-items: center; gap: 8px; margin-bottom: 12px; padding: 0 11px; border: 1px solid var(--fp-frame-line); border-radius: 7px; background: var(--fp-frame-soft); }
.fp-frame__search:focus-within { border-color: var(--fp-frame-magenta); box-shadow: 0 0 0 3px rgba(168,23,125,.1); }
.fp-frame__search span { color: var(--fp-frame-muted); font-size: 21px; line-height: 1; transform: rotate(-15deg); }
.fp-frame__search input { width: 100%; height: 42px; padding: 0; border: 0; outline: 0; background: transparent; color: var(--fp-frame-ink); font-size: 14px; }
.fp-frame__product-scroll { flex: 1; min-height: 0; overflow: hidden; }
.fp-frame__product-list {
	height: 100%;
	min-height: 0;
	overflow-x: hidden;
	overflow-y: auto;
	overscroll-behavior: contain;
	padding-right: 5px;
	scrollbar-color: var(--fp-frame-magenta) #ece8eb;
	scrollbar-width: thin;
}
.fp-frame__product-list::-webkit-scrollbar { width: 11px; }
.fp-frame__product-list::-webkit-scrollbar-track { border-radius: 999px; background: #ece8eb; }
.fp-frame__product-list::-webkit-scrollbar-thumb { min-height: 38px; border: 2px solid #ece8eb; border-radius: 999px; background: var(--fp-frame-magenta); }
.fp-frame__product-list::-webkit-scrollbar-thumb:hover { background: var(--fp-frame-magenta-dark); }
.fp-frame__product { display: grid; grid-template-columns: 45px minmax(0, 1fr) 32px; align-items: center; gap: 10px; margin-bottom: 7px; padding: 9px 8px; border: 1px solid var(--fp-frame-line); border-radius: 8px; background: var(--fp-frame-paper); transition: border-color .15s ease, transform .15s ease; }
.fp-frame__product:hover { border-color: var(--fp-frame-magenta); transform: translateX(2px); }
.fp-frame__product-preview { position: relative; display: grid; place-items: center; width: 43px; height: 43px; overflow: hidden; border: 2px solid var(--fp-frame-ink); border-radius: 5px; background: #faf9fa; }
.fp-frame__product-preview.is-curved { border-color: #7f1662; background: radial-gradient(circle at 50% 45%, #fff 0%, #fbf5f9 70%, #f0dce9 100%); }
.fp-frame__product-preview.is-corner { width: 20px; margin-left: 12px; background: var(--fp-frame-ink); }
.fp-frame__product-preview.is-corner i { position: absolute; width: 32px; height: 3px; background: #fff; }
.fp-frame__product-preview.is-corner i:last-child { transform: rotate(90deg); }
.fp-frame__product-preview.is-door { border-color: var(--fp-frame-magenta); }
.fp-frame__product-preview .fp-frame__special-visual { width: 100%; height: 100%; }
.fp-frame__product-copy { min-width: 0; }
.fp-frame__product-copy small,
.fp-frame__product-copy strong,
.fp-frame__product-copy b { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fp-frame__product-copy small { color: var(--fp-frame-magenta); font-size: 10px; font-weight: 850; letter-spacing: .05em; text-transform: uppercase; }
.fp-frame__product-copy strong { font-size: 14px; }
.fp-frame__product-copy b { color: var(--fp-frame-muted); font-size: 12px; font-weight: 600; }
.fp-frame__product > button { display: grid; place-items: center; width: 30px; height: 30px; padding: 0; border: 0; border-radius: 50%; background: var(--fp-frame-ink); color: #fff; font-size: 20px; line-height: 1; }
.fp-frame__product > button:hover { background: var(--fp-frame-magenta); }
.fp-frame__catalog-hint { margin: 12px 2px 0; color: var(--fp-frame-muted); font-size: 12px; line-height: 1.45; }
.fp-frame__no-results { color: var(--fp-frame-muted); font-size: 13px; text-align: center; }

.fp-frame__stage { display: grid; grid-template-rows: 55px minmax(0, 1fr) 38px; min-width: 0; min-height: 0; background: #eeecef; }
.fp-frame__toolbar { z-index: 4; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; padding: 0 14px; background: rgba(255,255,255,.94); border-bottom: 1px solid var(--fp-frame-line); }
.fp-frame__toolbar-group { display: flex; align-items: center; gap: 5px; }
.fp-frame__toolbar-group button { min-width: 34px; height: 34px; padding: 0 9px; border: 1px solid var(--fp-frame-line); border-radius: 6px; background: var(--fp-frame-paper); color: var(--fp-frame-ink); font-weight: 750; }
.fp-frame__toolbar-group button:hover:not(:disabled) { border-color: var(--fp-frame-magenta); color: var(--fp-frame-magenta); }
.fp-frame__toolbar-title { display: flex; flex-direction: column; align-items: center; min-width: 0; }
.fp-frame__toolbar-title strong { max-width: 260px; overflow: hidden; font-size: 15px; text-overflow: ellipsis; white-space: nowrap; }
.fp-frame__toolbar-title small { color: var(--fp-frame-muted); font-size: 11px; }
.fp-frame__zoom { justify-self: end; }
.fp-frame__zoom output { min-width: 53px; text-align: center; font-size: 12px; font-weight: 750; }
.fp-frame__zoom [data-fit] { min-width: 78px; }
.fp-frame__viewport { position: relative; min-height: 0; overflow: auto; overscroll-behavior: contain; background: #f3f1f3; scrollbar-color: #aaa4a9 transparent; }
.fp-frame__workspace { position: relative; min-width: 100%; min-height: 100%; }
.fp-frame__empty { position: absolute; left: 50%; top: 50%; width: 280px; margin: 0; padding: 24px; color: var(--fp-frame-muted); text-align: center; pointer-events: none; transform: translate(-50%, -50%); }
.fp-frame__empty[hidden] { display: none; }
.fp-frame__empty > span { display: grid; place-items: center; width: 50px; height: 50px; margin: 0 auto 12px; border: 1px dashed var(--fp-frame-magenta); border-radius: 50%; color: var(--fp-frame-magenta); font-size: 26px; }
.fp-frame__empty strong,
.fp-frame__empty small { display: block; }
.fp-frame__empty strong { color: var(--fp-frame-ink); font-size: 16px; }
.fp-frame__empty small { margin-top: 4px; font-size: 12px; }
.fp-frame__placed { position: absolute; display: flex; flex-direction: column; align-items: center; justify-content: center; min-width: 3px; min-height: 3px; overflow: hidden; padding: 3px; border: 3px solid #373139; border-radius: 3px; background: rgba(255,255,255,.8); color: var(--fp-frame-ink); user-select: none; touch-action: none; transition: box-shadow .12s ease, border-color .12s ease; }
.fp-frame__placed:hover { z-index: 2; border-color: var(--fp-frame-magenta); }
.fp-frame__placed.is-selected { z-index: 3; border-color: var(--fp-frame-magenta); box-shadow: 0 0 0 4px rgba(168,23,125,.18), 0 8px 24px rgba(48,41,50,.18); }
.fp-frame__placed.is-invalid { border-color: var(--fp-frame-red); background: rgba(200,60,77,.13); }
.fp-frame__placed > b,
.fp-frame__placed > small { position: relative; z-index: 2; max-width: 92%; overflow: hidden; padding: 1px 4px; border-radius: 3px; background: rgba(255,255,255,.84); text-overflow: ellipsis; white-space: nowrap; }
.fp-frame__placed > b { font-size: clamp(7px, .75vw, 11px); }
.fp-frame__placed > small { font-size: clamp(6px, .65vw, 9px); opacity: .78; }
.fp-frame__placed.is-curved { border-color: #7f1662; background: radial-gradient(circle at 50% 45%, rgba(255,255,255,.98) 0%, rgba(250,241,247,.96) 72%, rgba(232,203,222,.92) 100%); }
.fp-frame__placed.is-corner { border-color: var(--fp-frame-magenta); background: var(--fp-frame-ink); color: #fff; }
.fp-frame__placed-cross { position: absolute; width: 80%; height: 3px; background: #fff; transform: rotate(45deg); }
.fp-frame__placed-cross::after { position: absolute; inset: 0; content: ""; background: #fff; transform: rotate(90deg); }
.fp-frame__placed.is-door { border-color: var(--fp-frame-magenta); }
.fp-frame__placed .fp-frame__special-visual { position: absolute; inset: 6%; width: 88%; height: 88%; pointer-events: none; }
.fp-frame__special-visual * { vector-effect: non-scaling-stroke; }
.fp-frame__door-opening { fill: rgba(48,41,50,.08); stroke: none; }
.fp-frame__door-shadow { fill: rgba(48,41,50,.16); stroke: none; }
.fp-frame__door-leaf { fill: rgba(255,255,255,.88); stroke: #756b73; stroke-width: 1.5; }
.fp-frame__door-frame { fill: none; stroke: var(--fp-frame-magenta); stroke-linecap: square; stroke-linejoin: round; stroke-width: 5; }
.fp-frame__door-threshold { fill: none; stroke: #756b73; stroke-width: 1.4; }
.fp-frame__door-hinges { fill: none; stroke: #756b73; stroke-linecap: round; stroke-width: 2.5; }
.fp-frame__door-handle-base { fill: #fff; stroke: var(--fp-frame-magenta); stroke-width: 1.5; }
.fp-frame__door-handle { fill: none; stroke: var(--fp-frame-magenta); stroke-linecap: round; stroke-width: 2.4; }
.fp-frame__curve-surface { fill: rgba(168,23,125,.18); stroke: #7f1662; stroke-linejoin: round; stroke-width: 2.2; }
.fp-frame__curve-centre { fill: none; stroke: var(--fp-frame-magenta); stroke-dasharray: 3 3; stroke-linecap: round; stroke-width: 1.6; }
.fp-frame__curve-direction { fill: var(--fp-frame-magenta); stroke: #fff; stroke-width: 1.2; }
.fp-frame__dimension { position: absolute; color: var(--fp-frame-magenta); font-size: 11px; font-weight: 800; pointer-events: none; }
.fp-frame__dimension::before,
.fp-frame__dimension::after { position: absolute; content: ""; background: var(--fp-frame-magenta); }
.fp-frame__dimension--width { height: 1px; border-top: 1px solid var(--fp-frame-magenta); text-align: center; }
.fp-frame__dimension--width::before,
.fp-frame__dimension--width::after { top: -4px; width: 1px; height: 9px; }
.fp-frame__dimension--width::before { left: 0; }
.fp-frame__dimension--width::after { right: 0; }
.fp-frame__dimension--width span { position: relative; top: 3px; padding: 2px 6px; background: #f3f1f3; white-space: nowrap; }
.fp-frame__dimension--height { width: 1px; border-left: 1px solid var(--fp-frame-magenta); }
.fp-frame__dimension--height::before,
.fp-frame__dimension--height::after { left: -4px; width: 9px; height: 1px; }
.fp-frame__dimension--height::before { top: 0; }
.fp-frame__dimension--height::after { bottom: 0; }
.fp-frame__dimension--height span { position: absolute; top: 50%; left: 7px; padding: 2px 6px; background: #f3f1f3; transform: translateY(-50%); white-space: nowrap; }
.fp-frame__stage-status { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 0 14px; background: var(--fp-frame-paper); border-top: 1px solid var(--fp-frame-line); }
.fp-frame__stage-status > span { display: flex; align-items: center; gap: 8px; font-size: 11px; font-weight: 750; }
.fp-frame__stage-status i { width: 7px; height: 7px; border-radius: 50%; background: var(--fp-frame-muted); }
.fp-frame__stage-status .is-valid { color: var(--fp-frame-green); }
.fp-frame__stage-status .is-valid i { background: var(--fp-frame-green); }
.fp-frame__stage-status .is-error { color: var(--fp-frame-red); }
.fp-frame__stage-status .is-error i { background: var(--fp-frame-red); }
.fp-frame__stage-status .is-warning { color: #9b6414; }
.fp-frame__stage-status .is-warning i { background: #c9892a; }
.fp-frame__stage-status small { color: var(--fp-frame-muted); font-size: 10px; }

.fp-frame__project { display: flex; flex-direction: column; gap: 6px; margin-bottom: 16px; }
.fp-frame__project span { color: var(--fp-frame-muted); font-size: 12px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.fp-frame__project input { height: 42px; padding: 0 11px; border: 1px solid var(--fp-frame-line); border-radius: 6px; outline: 0; color: var(--fp-frame-ink); }
.fp-frame__project input:focus { border-color: var(--fp-frame-magenta); box-shadow: 0 0 0 3px rgba(168,23,125,.1); }
.fp-frame__project.is-invalid span { color: var(--fp-frame-red); }
.fp-frame__project.is-invalid input { border-color: var(--fp-frame-red); box-shadow: 0 0 0 3px rgba(200,60,77,.1); }
.fp-frame__measure { display: grid; grid-template-columns: 1fr auto 1fr; align-items: end; gap: 9px; padding: 15px 13px; border: 1px solid var(--fp-frame-line); border-radius: 8px; background: var(--fp-frame-soft); }
.fp-frame__measure > span { display: grid; grid-template-columns: 1fr auto; align-items: baseline; gap: 4px; }
.fp-frame__measure small { grid-column: 1/-1; color: var(--fp-frame-muted); font-size: 10px; font-weight: 750; text-transform: uppercase; }
.fp-frame__measure strong { font-size: clamp(22px, 2vw, 32px); line-height: 1; letter-spacing: -.05em; }
.fp-frame__measure em { font-size: 9px; font-style: normal; }
.fp-frame__measure > b { padding-bottom: 3px; color: var(--fp-frame-muted); }
.fp-frame__selection,
.fp-frame__parts { margin-top: 16px; padding-top: 15px; border-top: 1px solid var(--fp-frame-line); }
.fp-frame__selection[hidden] { display: none; }
.fp-frame__section-title { display: flex; align-items: center; justify-content: space-between; margin-bottom: 9px; }
.fp-frame__section-title span { color: var(--fp-frame-muted); font-size: 10px; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.fp-frame__section-title strong { color: var(--fp-frame-magenta); font-size: 11px; }
.fp-frame__selection > strong,
.fp-frame__selection > small { display: block; }
.fp-frame__selection > strong { font-size: 13px; }
.fp-frame__selection > small { color: var(--fp-frame-muted); font-size: 11px; }
.fp-frame__coordinates { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 11px; }
.fp-frame__coordinates label { display: grid; grid-template-columns: 20px 1fr; align-items: center; color: var(--fp-frame-muted); font-size: 11px; font-weight: 800; }
.fp-frame__coordinates input { width: 100%; height: 34px; padding: 0 7px; border: 1px solid var(--fp-frame-line); border-radius: 5px; }
.fp-frame__selection-actions { display: flex; gap: 7px; margin-top: 8px; }
.fp-frame__selection-actions button { flex: 1; min-height: 34px; border: 1px solid var(--fp-frame-line); border-radius: 5px; background: #fff; color: var(--fp-frame-ink); font-size: 11px; font-weight: 750; }
.fp-frame__selection-actions button:hover:not(:disabled) { border-color: var(--fp-frame-magenta); color: var(--fp-frame-magenta); }
.fp-frame__parts { flex: 1; min-height: 100px; }
.fp-frame__parts [data-parts-list] { max-height: 190px; overflow: auto; }
.fp-frame__parts [data-parts-list] > div { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 8px 0; border-bottom: 1px solid #eee; }
.fp-frame__parts [data-parts-list] span,
.fp-frame__parts [data-parts-list] strong,
.fp-frame__parts [data-parts-list] small { display: block; }
.fp-frame__parts [data-parts-list] strong { font-size: 11px; }
.fp-frame__parts [data-parts-list] small,
.fp-frame__parts [data-parts-list] p { margin: 0; color: var(--fp-frame-muted); font-size: 10px; }
.fp-frame__parts [data-parts-list] b { display: grid; place-items: center; min-width: 30px; height: 26px; border-radius: 13px; background: var(--fp-frame-soft); font-size: 11px; }
.fp-frame__order { flex: 0 0 auto; padding: 12px 20px 16px; background: var(--fp-frame-paper); border-top: 1px solid var(--fp-frame-line); }
.fp-frame__order [data-order-message] { min-height: 0; margin-bottom: 7px; color: var(--fp-frame-red); font-size: 10px; font-weight: 700; }
.fp-frame__order [data-order-message]:empty { display: none; }
.fp-frame__order > button { display: flex; align-items: center; justify-content: space-between; width: 100%; min-height: 48px; padding: 0 17px; border: 0; border-radius: 7px; background: var(--fp-frame-ink); color: #fff; font-size: 15px; font-weight: 850; }
.fp-frame__order > button:hover:not(:disabled) { background: var(--fp-frame-magenta); }
.fp-frame__order > small { display: block; margin-top: 7px; color: var(--fp-frame-muted); font-size: 9px; text-align: center; }

.fp-frame__modal { position: fixed; z-index: 999999; inset: 0; display: grid; place-items: center; padding: 20px; background: rgba(48,41,50,.72); }
.fp-frame__modal[hidden] { display: none; }
.fp-frame__modal > div { position: relative; width: min(500px, 100%); padding: 36px; border-radius: 14px; background: #fff; box-shadow: 0 28px 70px rgba(0,0,0,.25); }
.fp-frame__modal > div > span { color: var(--fp-frame-magenta); font-size: 10px; font-weight: 900; letter-spacing: .12em; }
.fp-frame__modal h3 { margin: 8px 0 10px; font-size: 25px; line-height: 1.15; letter-spacing: -.035em; }
.fp-frame__modal p { margin: 0 0 24px; color: var(--fp-frame-muted); }
.fp-frame__modal > div > div { display: flex; justify-content: flex-end; gap: 8px; }
.fp-frame__modal > div > div button { min-height: 42px; padding: 0 15px; border: 1px solid var(--fp-frame-line); border-radius: 6px; background: #fff; color: var(--fp-frame-ink); font-weight: 750; }
.fp-frame__modal > div > div button:last-child { border-color: var(--fp-frame-magenta); background: var(--fp-frame-magenta); color: #fff; }
.fp-frame__modal-close { position: absolute; top: 12px; right: 12px; display: grid; place-items: center; width: 32px; height: 32px; padding: 0; border: 1px solid var(--fp-frame-line); border-radius: 50%; background: #fff; color: var(--fp-frame-muted); font-size: 20px; }

.fp-frame-empty-catalog { padding: 50px; border: 1px solid #ddd8dc; background: #fff; color: #302932; text-align: center; }
.fp-frame-empty-catalog > span { color: #a8177d; font-size: 11px; font-weight: 900; letter-spacing: .12em; }
.fp-frame-empty-catalog h2 { margin: 8px 0; font-size: 30px; }
.fp-frame-empty-catalog p { color: #756e76; }
.fp-frame-empty-catalog a { color: #a8177d; font-weight: 800; }

@media (max-width: 1120px) {
	.fp-frame__header { grid-template-columns: 1fr auto; }
	.fp-frame__header-copy { display: none; }
	.fp-frame__layout { grid-template-columns: 244px minmax(320px, 1fr) 276px; }
	.fp-frame__catalog { padding-inline: 13px; }
	.fp-frame__summary-scroll,
	.fp-frame__order { padding-inline: 15px; }
	.fp-frame__manufacturers { grid-template-columns: 1fr; }
	.fp-frame__manufacturers button { display: flex; align-items: center; justify-content: space-between; padding: 7px 9px; text-align: left; }
	.fp-frame__manufacturers small { margin: 0; }
}

@media (max-width: 820px) {
	.fp-frame { height: auto; min-height: 0; overflow: visible; }
	.fp-frame__layout { display: flex; flex-direction: column; height: auto; }
	.fp-frame__catalog,
	.fp-frame__summary { border: 0; }
	.fp-frame__catalog { max-height: 500px; border-bottom: 1px solid var(--fp-frame-line); }
	.fp-frame__manufacturers { grid-template-columns: repeat(3, 1fr); }
	.fp-frame__manufacturers button { display: block; text-align: center; }
	.fp-frame__stage { height: 68vh; min-height: 520px; }
	.fp-frame__summary { min-height: 560px; }
}

@media (hover: none) and (pointer: coarse) {
	/* iPadOS zooms the whole page when a focused field is rendered below 16 px. */
	.fp-frame input,
	.fp-frame select,
	.fp-frame textarea { font-size: 16px !important; }
	.fp-frame__viewport { touch-action: pan-x pan-y; }
	.fp-frame button:not(.fp-frame__placed) { touch-action: manipulation; }
}

@media (max-width: 540px) {
	.fp-frame__toolbar { grid-template-columns: auto 1fr; }
	.fp-frame__toolbar-title { align-items: flex-start; padding-left: 8px; }
	.fp-frame__zoom { position: absolute; right: 8px; top: 64px; z-index: 5; padding: 5px; border: 1px solid var(--fp-frame-line); border-radius: 7px; background: #fff; }
	.fp-frame__zoom [data-fit] { min-width: 64px; }
	.fp-frame__stage-status small { display: none; }
	.fp-frame__manufacturers { grid-template-columns: 1fr; }
	.fp-frame__manufacturers button { display: flex; text-align: left; }
}

/* BEGIN SHARED MANUFACTURER ENTRY */
/* Shared manufacturer-first screen. Brand colors stay local to each product. */
.fp-manufacturer-entry,.fp-manufacturer-current-slot{--entry-accent:var(--brand,var(--fp3d-magenta,var(--fp-frame-magenta,#951b81)));--entry-ink:var(--ink,#302932);--entry-muted:var(--muted,#756e76)}
.is-choosing-manufacturer>.fp-frame__layout,.is-choosing-manufacturer>.fp3d__layout{display:none!important}
.fp-manufacturer-entry[hidden]{display:none!important}
.fp-manufacturer-entry{width:100%;height:100%;min-height:0;overflow:auto;overscroll-behavior:contain;background:#faf9fa;color:var(--entry-ink)}
.fp-manufacturer-entry__inner{width:min(1100px,calc(100% - 64px));margin:0 auto;padding:clamp(32px,7vh,80px) 0 32px}
.fp-manufacturer-entry__eyebrow{display:block;margin-bottom:16px;color:var(--entry-accent);font-size:12px;font-weight:800;letter-spacing:.14em}
.fp-manufacturer-entry h2{margin:0 0 16px;font-size:clamp(28px,3.3vw,44px);font-weight:750;line-height:1.13;letter-spacing:-.035em;color:var(--entry-ink)}
.fp-manufacturer-entry__intro{max-width:720px;margin:0;color:var(--entry-muted);font-size:16px;line-height:1.65}
.fp-manufacturer-entry__cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px;margin-top:34px}
.fp-manufacturer-entry .fp-manufacturer-entry__card{display:flex;min-width:0;min-height:255px;align-items:flex-start;flex-direction:column;padding:28px;border:1px solid #ddd8dc;border-radius:18px;background:#fff;color:var(--entry-ink);text-align:left;box-shadow:0 8px 26px #30293205;transition:border-color .15s,box-shadow .15s}
.fp-manufacturer-entry .fp-manufacturer-entry__card:not(:disabled):hover,.fp-manufacturer-entry .fp-manufacturer-entry__card[aria-pressed="true"]{border-color:var(--entry-accent);box-shadow:0 8px 28px #30293212}
.fp-manufacturer-entry__card strong{display:block;margin:19px 0 7px;font-size:25px;line-height:1.25;overflow-wrap:anywhere}
.fp-manufacturer-entry__mark{display:grid;width:54px;height:54px;place-items:center;border-radius:12px;background:color-mix(in srgb,var(--entry-accent) 8%,#fff);color:var(--entry-accent)}
.fp-manufacturer-entry__mark svg{display:block;width:34px;height:34px;fill:none;stroke:currentColor;stroke-width:1.6}
.fp-manufacturer-entry__count{font-size:13px;color:var(--entry-muted);line-height:1.5}
.fp-manufacturer-entry__cta{margin-top:auto;padding-top:26px;color:var(--entry-accent);font-size:14px;font-weight:750}
.fp-manufacturer-entry__footer{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:26px;padding-top:22px;border-top:1px solid #e3dfe3}
.fp-manufacturer-entry__footer p{max-width:470px;margin:0;color:var(--entry-muted);font-size:13px;line-height:1.6}
.fp-manufacturer-entry__footer>div{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:10px}
.fp-manufacturer-entry__footer button,.fp-manufacturer-current button{padding:9px 12px;border:1px solid #ddd8dc;border-radius:8px;background:#fff;color:var(--entry-accent);font-size:13px;font-weight:700;line-height:1.4}
.fp-manufacturer-entry button:focus-visible,.fp-manufacturer-current button:focus-visible{outline:3px solid var(--entry-accent);outline-offset:4px}
.fp-manufacturer-entry button[hidden]{display:none!important}
.fp-manufacturer-current-slot{display:block!important;grid-template-columns:1fr!important}
.fp-manufacturer-current{display:flex;align-items:flex-start;flex-direction:column;gap:8px;padding:14px;border:1px solid #ddd8dc;border-radius:10px;background:#fff}
.fp-manufacturer-current>span{font-size:11px;color:var(--entry-muted);font-weight:650}
.fp-manufacturer-current strong{color:var(--entry-ink);font-size:18px;line-height:1.3;overflow-wrap:anywhere}
.fp-manufacturer-current-slot .fp-manufacturer-current button{min-height:0;width:auto;padding:6px 0;border:0;background:none;color:var(--entry-accent);font-size:12px;text-align:left;line-height:1.4}
@media(max-width:700px){.fp-manufacturer-entry__inner{width:calc(100% - 32px);padding-top:28px}.fp-manufacturer-entry__cards{grid-template-columns:1fr;gap:14px;margin-top:24px}.fp-manufacturer-entry .fp-manufacturer-entry__card{min-height:210px;padding:22px}.fp-manufacturer-entry__footer{align-items:flex-start;flex-direction:column;gap:16px}.fp-manufacturer-entry__footer>div{justify-content:flex-start}}
@media(prefers-reduced-motion:reduce){.fp-manufacturer-entry__card{transition:none!important}}
.fp-manufacturer-entry__error{padding:12px 16px;border:1px solid #b93b48;border-radius:8px;background:#fff4f4;color:#842b32;font-size:14px;line-height:1.5}
/* END SHARED MANUFACTURER ENTRY */

/* BEGIN SHARED PHONE GATE */
.print-phone-gate{display:none}
[data-phone-blocked="1"]{height:auto!important;min-height:0!important;overflow:visible!important}
[data-phone-blocked="1"]>.print-phone-gate~*{display:none!important}
[data-phone-blocked="1"]>.print-phone-gate{display:grid;width:min(100%,520px);min-height:min(620px,calc(100svh - 24px));place-content:center;justify-items:center;gap:14px;margin:12px auto;padding:clamp(30px,8vw,54px) clamp(22px,7vw,44px);border:1px solid #ddd8dc;border-radius:20px;background:#fff;color:var(--fp-frame-ink,var(--fp3d-ink,var(--lfp-text,#302932)));text-align:center;box-shadow:0 14px 42px rgba(17,35,52,.08)}
.print-phone-gate__icon{display:grid;width:72px;height:72px;place-items:center;margin-bottom:5px;border-radius:20px;background:color-mix(in srgb,var(--fp-frame-magenta,var(--fp3d-magenta,var(--lfp-blue,#951b81))) 9%,#fff);color:var(--fp-frame-magenta,var(--fp3d-magenta,var(--lfp-blue,#951b81)))}
.print-phone-gate__icon svg{display:block;width:38px;height:38px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.print-phone-gate__eyebrow{color:var(--fp-frame-magenta,var(--fp3d-magenta,var(--lfp-blue,#951b81)));font-size:11px;font-weight:850;letter-spacing:.14em}
.print-phone-gate h2{max-width:430px;margin:0;color:inherit;font-size:clamp(27px,8vw,38px);font-weight:780;line-height:1.1;letter-spacing:-.035em}
.print-phone-gate p{max-width:440px;margin:0;color:var(--fp-frame-muted,var(--fp3d-muted,var(--lfp-muted,#756e76)));font-size:15px;line-height:1.6}
.print-phone-gate>strong{display:inline-flex;align-items:center;gap:8px;margin-top:7px;padding:9px 13px;border-radius:999px;background:#f2fbf6;color:#167247;font-size:12px;line-height:1.35}
.print-phone-gate>strong::before{width:8px;height:8px;border-radius:50%;background:#31c77a;content:""}
/* END SHARED PHONE GATE */

.fp-curve-sides{margin:14px 0;padding:12px;min-width:0;border:1px solid #cdd5de;border-radius:10px;background:#fff;color:var(--brand,var(--fp3d-magenta,var(--fp-frame-magenta,#174976)))}
.fp-curve-sides[hidden]{display:none!important}
.fp-curve-sides legend{padding:0 5px;font-size:13px;font-weight:750}
.fp-curve-sides>div{display:flex;gap:8px;flex-wrap:wrap}
.fp-curve-sides button{display:flex;flex:1 1 110px;align-items:center;gap:6px;min-height:84px;padding:9px 7px;border:1px solid #cdd5de;border-radius:8px;background:#fff;color:inherit;text-align:left;cursor:pointer;font:inherit}
.fp-curve-sides button[aria-pressed=true]{border:2px solid currentColor;background:color-mix(in srgb,currentColor 8%,white);padding:8px 6px}
.fp-curve-sides button:focus-visible{outline:3px solid #1686d9;outline-offset:3px}
.fp-curve-sides button:disabled{opacity:.55;cursor:default}
.fp-curve-sides svg{position:static!important;inset:auto!important;width:48px!important;height:38px!important;flex:0 0 48px}
.fp-curve-sides strong,.fp-curve-sides small,.fp-curve-sides b{display:block;font-size:12px;line-height:1.4}
.fp-curve-sides small{font-weight:400;color:#52616d}
.fp-curve-sides p{margin:9px 0 0;font-size:11px;line-height:1.4;color:#52616d}

[data-fp-frame] .fp-frame__product-copy strong,[data-fp-frame] .fp-frame__product-copy b{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;line-height:1.4}
